﻿// MT507




using Little.Soldier.SWIFT;
using Little.Soldier.SWIFT.Definition;
using System.Collections.Generic;
using System.ComponentModel;

namespace Little.Soldier.SWIFT.Messages.Category5
{
  public class MT507 : SwiftMessage
  {
    private static SwiftMessageDefinition MessageDefinition;
    private static SwiftTagSequenceDefinition U0002;
    private static SwiftTagDefinition U0003;
    private static SwiftTagSubItemDefinition U0004;
    private static SwiftTagDefinition U0005;
    private static SwiftTagSubItemDefinition U0006;
    private static SwiftTagSubItemDefinition U0007;
    private static SwiftTagDefinition U0008;
    private static SwiftTagSubItemDefinition U000E;
    private static SwiftTagSubItemDefinition U000F;
    private static SwiftTagSubItemDefinition U0010;
    private static SwiftTagSequenceDefinition U0011;
    private static SwiftTagDefinition U0012;
    private static SwiftTagSubItemDefinition U0013;
    private static SwiftTagDefinition U0014;
    private static SwiftTagSubItemDefinition U0015;
    private static SwiftTagSubItemDefinition U0016;
    private static SwiftTagSubItemDefinition U0017;
    private static SwiftTagDefinition U0018;
    private static SwiftTagSubItemDefinition U0019;
    private static SwiftTagSubItemDefinition U001A;
    private static SwiftTagDefinition U001B;
    private static SwiftTagSubItemDefinition U001C;
    private static SwiftTagSubItemDefinition U001D;
    private static SwiftTagSubItemDefinition U001E;
    private static SwiftTagDefinition U001F;
    private static SwiftTagSubItemDefinition U007F;
    private static SwiftTagSubItemDefinition U0080;
    private static SwiftTagDefinition U0081;
    private static SwiftTagSubItemDefinition U0082;
    private static SwiftTagChoiceDefinition U0083;
    private static SwiftTagDefinition U0084;
    private static SwiftTagSubItemDefinition U0086;
    private static SwiftTagSubItemDefinition U0087;
    private static SwiftTagDefinition U0088;
    private static SwiftTagSubItemDefinition U0089;
    private static SwiftTagSubItemDefinition U008A;
    private static SwiftTagSubItemDefinition U008B;
    private static SwiftTagSubItemDefinition U008C;
    private static SwiftTagDefinition U008D;
    private static SwiftTagSubItemDefinition U008E;
    private static SwiftTagSubItemDefinition U008F;
    private static SwiftTagSubItemDefinition U0090;
    private static SwiftTagSubItemDefinition U0091;
    private static SwiftTagSubItemDefinition U0092;
    private static SwiftTagSubItemDefinition U0093;
    private static SwiftTagSubItemDefinition U0094;
    private static SwiftTagSubItemDefinition U0095;
    private static SwiftTagSubItemDefinition U0096;
    private static SwiftTagChoiceDefinition U0097;
    private static SwiftTagDefinition U0098;
    private static SwiftTagSubItemDefinition U0099;
    private static SwiftTagSubItemDefinition U009A;
    private static SwiftTagSubItemDefinition U009B;
    private static SwiftTagDefinition U009C;
    private static SwiftTagSubItemDefinition U009D;
    private static SwiftTagSubItemDefinition U009E;
    private static SwiftTagChoiceDefinition U009F;
    private static SwiftTagDefinition U0001U0002;
    private static SwiftTagSubItemDefinition U0002U0002;
    private static SwiftTagSubItemDefinition U0003U0002;
    private static SwiftTagDefinition U0004U0002;
    private static SwiftTagSubItemDefinition U0005U0002;
    private static SwiftTagSubItemDefinition U0006U0002;
    private static SwiftTagDefinition U0007U0002;
    private static SwiftTagSubItemDefinition U0008U0002;
    private static SwiftTagSubItemDefinition U000EU0002;
    private static SwiftTagSubItemDefinition U000FU0002;
    private static SwiftTagDefinition U0010U0002;
    private static SwiftTagSubItemDefinition U0011U0002;
    private static SwiftTagSubItemDefinition U0012U0002;
    private static SwiftTagSubItemDefinition U0013U0002;
    private static SwiftTagDefinition U0014U0002;
    private static SwiftTagSubItemDefinition U0015U0002;
    private static SwiftTagSubItemDefinition U0016U0002;
    private static SwiftTagSubItemDefinition U0017U0002;
    private static SwiftTagChoiceDefinition U0018U0002;
    private static SwiftTagDefinition U0019U0002;
    private static SwiftTagSubItemDefinition U001AU0002;
    private static SwiftTagSubItemDefinition U001BU0002;
    private static SwiftTagDefinition U001CU0002;
    private static SwiftTagSubItemDefinition U001DU0002;
    private static SwiftTagSubItemDefinition U001EU0002;
    private static SwiftTagSequenceDefinition U001FU0002;
    private static SwiftTagDefinition U007FU0002;
    private static SwiftTagSubItemDefinition U0080U0002;
    private static SwiftTagChoiceDefinition U0081U0002;
    private static SwiftTagDefinition U0082U0002;
    private static SwiftTagSubItemDefinition U0083U0002;
    private static SwiftTagSubItemDefinition U0084U0002;
    private static SwiftTagDefinition U0086U0002;
    private static SwiftTagSubItemDefinition U0087U0002;
    private static SwiftTagSubItemDefinition U0088U0002;
    private static SwiftTagSubItemDefinition U0089U0002;
    private static SwiftTagDefinition U008AU0002;
    private static SwiftTagSubItemDefinition U008BU0002;
    private static SwiftTagSubItemDefinition U008CU0002;
    private static SwiftTagDefinition U008DU0002;
    private static SwiftTagSubItemDefinition U008EU0002;
    private static SwiftTagDefinition U008FU0002;
    private static SwiftTagSubItemDefinition U0090U0002;
    private static SwiftTagSequenceDefinition U0091U0002;
    private static SwiftTagDefinition U0092U0002;
    private static SwiftTagSubItemDefinition U0093U0002;
    private static SwiftTagDefinition U0094U0002;
    private static SwiftTagSubItemDefinition U0095U0002;
    private static SwiftTagSubItemDefinition U0096U0002;
    private static SwiftTagDefinition U0097U0002;
    private static SwiftTagSubItemDefinition U0098U0002;
    private static SwiftTagSubItemDefinition U0099U0002;
    private static SwiftTagDefinition U009AU0002;
    private static SwiftTagSubItemDefinition U009BU0002;
    private static SwiftTagSubItemDefinition U009CU0002;
    private static SwiftTagSubItemDefinition U009DU0002;
    private static SwiftTagDefinition U009EU0002;
    private static SwiftTagSubItemDefinition U009FU0002;
    private static SwiftTagSubItemDefinition U0001U0003;
    private static SwiftTagSubItemDefinition U0002U0003;
    private static SwiftTagDefinition U0003U0003;
    private static SwiftTagSubItemDefinition U0004U0003;
    private static SwiftTagSubItemDefinition U0005U0003;
    private static SwiftTagSequenceDefinition U0006U0003;
    private static SwiftTagDefinition U0007U0003;
    private static SwiftTagSubItemDefinition U0008U0003;
    private static SwiftTagSequenceDefinition U000EU0003;
    private static SwiftTagDefinition U000FU0003;
    private static SwiftTagSubItemDefinition U0010U0003;
    private static SwiftTagChoiceDefinition U0011U0003;
    private static SwiftTagDefinition U0012U0003;
    private static SwiftTagSubItemDefinition U0013U0003;
    private static SwiftTagSubItemDefinition U0014U0003;
    private static SwiftTagDefinition U0015U0003;
    private static SwiftTagSubItemDefinition U0016U0003;
    private static SwiftTagSubItemDefinition U0017U0003;
    private static SwiftTagSubItemDefinition U0018U0003;
    private static SwiftTagSequenceDefinition U0019U0003;
    private static SwiftTagDefinition U001AU0003;
    private static SwiftTagSubItemDefinition U001BU0003;
    private static SwiftTagChoiceDefinition U001CU0003;
    private static SwiftTagDefinition U001DU0003;
    private static SwiftTagSubItemDefinition U001EU0003;
    private static SwiftTagSubItemDefinition U001FU0003;
    private static SwiftTagDefinition U007FU0003;
    private static SwiftTagSubItemDefinition U0080U0003;
    private static SwiftTagSubItemDefinition U0081U0003;
    private static SwiftTagDefinition U0082U0003;
    private static SwiftTagSubItemDefinition U0083U0003;
    private static SwiftTagSubItemDefinition U0084U0003;
    private static SwiftTagDefinition U0086U0003;
    private static SwiftTagSubItemDefinition U0087U0003;
    private static SwiftTagSubItemDefinition U0088U0003;
    private static SwiftTagSubItemDefinition U0089U0003;
    private static SwiftTagDefinition U008AU0003;
    private static SwiftTagSubItemDefinition U008BU0003;
    private static SwiftTagSubItemDefinition U008CU0003;
    private static SwiftTagSubItemDefinition U008DU0003;
    private static SwiftTagSubItemDefinition U008EU0003;
    private static SwiftTagSubItemDefinition U008FU0003;
    private static SwiftTagChoiceDefinition U0090U0003;
    private static SwiftTagDefinition U0091U0003;
    private static SwiftTagSubItemDefinition U0092U0003;
    private static SwiftTagSubItemDefinition U0093U0003;
    private static SwiftTagDefinition U0094U0003;
    private static SwiftTagSubItemDefinition U0095U0003;
    private static SwiftTagSubItemDefinition U0096U0003;
    private static SwiftTagSubItemDefinition U0097U0003;
    private static SwiftTagSubItemDefinition U0098U0003;
    private static SwiftTagDefinition U0099U0003;
    private static SwiftTagSubItemDefinition U009AU0003;
    private static SwiftTagSubItemDefinition U009BU0003;
    private static SwiftTagDefinition U009CU0003;
    private static SwiftTagSubItemDefinition U009DU0003;
    private static SwiftTagDefinition U009EU0003;
    private static SwiftTagSubItemDefinition U009FU0003;
    private static SwiftTagSequenceDefinition U0001U0004;
    private static SwiftTagDefinition U0002U0004;
    private static SwiftTagSubItemDefinition U0003U0004;
    private static SwiftTagDefinition U0004U0004;
    private static SwiftTagSubItemDefinition U0005U0004;
    private static SwiftTagSubItemDefinition U0006U0004;
    private static SwiftTagSubItemDefinition U0007U0004;
    private static SwiftTagSequenceDefinition U0008U0004;
    private static SwiftTagDefinition U000EU0004;
    private static SwiftTagSubItemDefinition U000FU0004;
    private static SwiftTagChoiceDefinition U0010U0004;
    private static SwiftTagDefinition U0011U0004;
    private static SwiftTagSubItemDefinition U0012U0004;
    private static SwiftTagSubItemDefinition U0013U0004;
    private static SwiftTagDefinition U0014U0004;
    private static SwiftTagSubItemDefinition U0015U0004;
    private static SwiftTagSubItemDefinition U0016U0004;
    private static SwiftTagDefinition U0017U0004;
    private static SwiftTagSubItemDefinition U0018U0004;
    private static SwiftTagSubItemDefinition U0019U0004;
    private static SwiftTagSubItemDefinition U001AU0004;
    private static SwiftTagDefinition U001BU0004;
    private static SwiftTagSubItemDefinition U001CU0004;
    private static SwiftTagSubItemDefinition U001DU0004;
    private static SwiftTagSubItemDefinition U001EU0004;
    private static SwiftTagSubItemDefinition U001FU0004;
    private static SwiftTagSubItemDefinition U007FU0004;
    private static SwiftTagChoiceDefinition U0080U0004;
    private static SwiftTagDefinition U0081U0004;
    private static SwiftTagSubItemDefinition U0082U0004;
    private static SwiftTagSubItemDefinition U0083U0004;
    private static SwiftTagDefinition U0084U0004;
    private static SwiftTagSubItemDefinition U0086U0004;
    private static SwiftTagSubItemDefinition U0087U0004;
    private static SwiftTagDefinition U0088U0004;
    private static SwiftTagSubItemDefinition U0089U0004;
    private static SwiftTagSubItemDefinition U008AU0004;
    private static SwiftTagDefinition U008BU0004;
    private static SwiftTagSubItemDefinition U008CU0004;
    private static SwiftTagDefinition U008DU0004;
    private static SwiftTagSubItemDefinition U008EU0004;
    private static SwiftTagDefinition U008FU0004;
    private static SwiftTagSubItemDefinition U0090U0004;
    private static SwiftTagDefinition U0091U0004;
    private static SwiftTagSubItemDefinition U0092U0004;
    private static SwiftTagSequenceDefinition U0093U0004;
    private static SwiftTagDefinition U0094U0004;
    private static SwiftTagSubItemDefinition U0095U0004;
    private static SwiftTagChoiceDefinition U0096U0004;
    private static SwiftTagDefinition U0097U0004;
    private static SwiftTagSubItemDefinition U0098U0004;
    private static SwiftTagSubItemDefinition U0099U0004;
    private static SwiftTagDefinition U009AU0004;
    private static SwiftTagSubItemDefinition U009BU0004;
    private static SwiftTagSubItemDefinition U009CU0004;
    private static SwiftTagSubItemDefinition U009DU0004;
    private static SwiftTagDefinition U009EU0004;
    private static SwiftTagSubItemDefinition U009FU0004;
    private static SwiftTagSubItemDefinition U0001U0005;
    private static SwiftTagDefinition U0002U0005;
    private static SwiftTagSubItemDefinition U0003U0005;

    [Description("General Information")]
    public MT507.SequenceAClass SequenceA
    {
      get
      {
        return new MT507.SequenceAClass((SwiftElement) this, 0, false);
      }
    }

    [Description("Collateral Details")]
    public MT507.SequenceBClass[] SequenceB
    {
      get
      {
        int index = -1;
        List<MT507.SequenceBClass> list = new List<MT507.SequenceBClass>();
        int count;
        do
        {
          ++index;
          MT507.SequenceBClass sequenceBclass = new MT507.SequenceBClass((SwiftElement) this, index, false);
          count = this.ListTags((SwiftElement) sequenceBclass).Count;
          if (count > 0)
            list.Add(sequenceBclass);
        }
        while (count > 0);
        return list.ToArray();
      }
    }

    [Description("Additional Information")]
    public MT507.SequenceCClass SequenceC
    {
      get
      {
        MT507.SequenceCClass sequenceCclass = new MT507.SequenceCClass((SwiftElement) this, 0, false);
        if (this.ListTags((SwiftElement) sequenceCclass).Count > 0)
          return sequenceCclass;
        else
          return (MT507.SequenceCClass) null;
      }
    }

    public MT507()
      : base(true)
    {
    }

    public MT507(SwiftMessage message)
      : base(message)
    {
    }

    public MT507.SequenceBClass AddSequenceB()
    {
      return new MT507.SequenceBClass((SwiftElement) this, this.SequenceB.Length, true);
    }

    public void RemoveSequenceB(MT507.SequenceBClass sequence)
    {
      foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
        this.RemoveTag(tag);
    }

    public MT507.SequenceCClass AddSequenceC()
    {
      return this.SequenceC ?? new MT507.SequenceCClass((SwiftElement) this, 0, true);
    }

    public void RemoveSequenceC(MT507.SequenceCClass sequence)
    {
      foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
        this.RemoveTag(tag);
    }

    internal override SwiftMessageDefinition MsgDefinition()
    {
      return MT507.MessageDefinition;
    }

    protected override void InitSwiftMessageDefinition()
    {
      MT507.MessageDefinition = new SwiftMessageDefinition("MT507", "Collateral Status And Processing Advice");
      MT507.U0002 = new SwiftTagSequenceDefinition("SequenceA", "General Information");
      MT507.U0003 = new SwiftTagDefinition("StartOfBlock_A_16R", "Start Of Block");
      MT507.U0003.TagName = ":16R:GENL";
      MT507.U0004 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT507.U0004.Mandatory = false;
      MT507.U0003.Elements.Add((SwiftDefinitionElement) MT507.U0004);
      MT507.U0002.Elements.Add((SwiftDefinitionElement) MT507.U0003);
      MT507.U0005 = new SwiftTagDefinition("Reference_A_20C", "Reference");
      MT507.U0005.TagName = ":20C::";
      MT507.U0005.Multiple = true;
      MT507.U0006 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0005.Elements.Add((SwiftDefinitionElement) MT507.U0006);
      MT507.U0007 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT507.U0005.Elements.Add((SwiftDefinitionElement) MT507.U0007);
      MT507.U0002.Elements.Add((SwiftDefinitionElement) MT507.U0005);
      MT507.U0008 = new SwiftTagDefinition("FunctionOfTheMessage_A_23G", "Function Of The Message");
      MT507.U0008.TagName = ":23G:";
      MT507.U000E = new SwiftTagSubItemDefinition("Function", "Function");
      MT507.U0008.Elements.Add((SwiftDefinitionElement) MT507.U000E);
      MT507.U000F = new SwiftTagSubItemDefinition("Subfunction", "Subfunction");
      MT507.U000F.Mandatory = false;
      MT507.U0010 = new SwiftTagSubItemDefinition("Subfunction_1", "Subfunction");
      MT507.U000F.Elements.Add((SwiftDefinitionElement) MT507.U0010);
      MT507.U0008.Elements.Add((SwiftDefinitionElement) MT507.U000F);
      MT507.U0002.Elements.Add((SwiftDefinitionElement) MT507.U0008);
      MT507.U0011 = new SwiftTagSequenceDefinition("SequenceA1", "Agreement");
      MT507.U0011.Multiple = true;
      MT507.U0012 = new SwiftTagDefinition("StartOfBlock_A1_16R", "Start Of Block");
      MT507.U0012.TagName = ":16R:AGRE";
      MT507.U0013 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT507.U0013.Mandatory = false;
      MT507.U0012.Elements.Add((SwiftDefinitionElement) MT507.U0013);
      MT507.U0011.Elements.Add((SwiftDefinitionElement) MT507.U0012);
      MT507.U0014 = new SwiftTagDefinition("Indicator_A1_22F", "Agreement Indicator");
      MT507.U0014.TagName = ":22F::";
      MT507.U0014.Mandatory = false;
      MT507.U0015 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0014.Elements.Add((SwiftDefinitionElement) MT507.U0015);
      MT507.U0016 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT507.U0014.Elements.Add((SwiftDefinitionElement) MT507.U0016);
      MT507.U0017 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT507.U0014.Elements.Add((SwiftDefinitionElement) MT507.U0017);
      MT507.U0011.Elements.Add((SwiftDefinitionElement) MT507.U0014);
      MT507.U0018 = new SwiftTagDefinition("Date_A1_98A", "Agreement Date");
      MT507.U0018.TagName = ":98A::";
      MT507.U0018.Mandatory = false;
      MT507.U0019 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0018.Elements.Add((SwiftDefinitionElement) MT507.U0019);
      MT507.U001A = new SwiftTagSubItemDefinition("Date", "Date");
      MT507.U0018.Elements.Add((SwiftDefinitionElement) MT507.U001A);
      MT507.U0011.Elements.Add((SwiftDefinitionElement) MT507.U0018);
      MT507.U001B = new SwiftTagDefinition("Number_A1_13B", "Agreement Version Number");
      MT507.U001B.TagName = ":13B::";
      MT507.U001B.Mandatory = false;
      MT507.U001C = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U001B.Elements.Add((SwiftDefinitionElement) MT507.U001C);
      MT507.U001D = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT507.U001B.Elements.Add((SwiftDefinitionElement) MT507.U001D);
      MT507.U001E = new SwiftTagSubItemDefinition("Number_13B", "Number");
      MT507.U001B.Elements.Add((SwiftDefinitionElement) MT507.U001E);
      MT507.U0011.Elements.Add((SwiftDefinitionElement) MT507.U001B);
      MT507.U001F = new SwiftTagDefinition("Narrative_A1_70C", "Agreement Narrative");
      MT507.U001F.TagName = ":70C::";
      MT507.U001F.Mandatory = false;
      MT507.U007F = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U001F.Elements.Add((SwiftDefinitionElement) MT507.U007F);
      MT507.U0080 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT507.U001F.Elements.Add((SwiftDefinitionElement) MT507.U0080);
      MT507.U0011.Elements.Add((SwiftDefinitionElement) MT507.U001F);
      MT507.U0081 = new SwiftTagDefinition("EndOfBlock_A1_16S", "End Of Block");
      MT507.U0081.TagName = ":16S:AGRE";
      MT507.U0082 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT507.U0082.Mandatory = false;
      MT507.U0081.Elements.Add((SwiftDefinitionElement) MT507.U0082);
      MT507.U0011.Elements.Add((SwiftDefinitionElement) MT507.U0081);
      MT507.U0002.Elements.Add((SwiftDefinitionElement) MT507.U0011);
      MT507.U0083 = new SwiftTagChoiceDefinition("Choice", "");
      MT507.U0083.Mandatory = false;
      MT507.U0083.Multiple = true;
      MT507.U0084 = new SwiftTagDefinition("Date_A_98A", "Preparation Date/Time");
      MT507.U0084.TagName = ":98A::";
      MT507.U0086 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0084.Elements.Add((SwiftDefinitionElement) MT507.U0086);
      MT507.U0087 = new SwiftTagSubItemDefinition("Date", "Date");
      MT507.U0084.Elements.Add((SwiftDefinitionElement) MT507.U0087);
      MT507.U0083.Elements.Add((SwiftDefinitionElement) MT507.U0084);
      MT507.U0088 = new SwiftTagDefinition("DateTime_A_98C", "Preparation Date/Time");
      MT507.U0088.TagName = ":98C::";
      MT507.U0089 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0088.Elements.Add((SwiftDefinitionElement) MT507.U0089);
      MT507.U008A = new SwiftTagSubItemDefinition("DateTime", "Date and Time");
      MT507.U008B = new SwiftTagSubItemDefinition("Date", "Date");
      MT507.U008A.Elements.Add((SwiftDefinitionElement) MT507.U008B);
      MT507.U008C = new SwiftTagSubItemDefinition("Time", "Time");
      MT507.U008A.Elements.Add((SwiftDefinitionElement) MT507.U008C);
      MT507.U0088.Elements.Add((SwiftDefinitionElement) MT507.U008A);
      MT507.U0083.Elements.Add((SwiftDefinitionElement) MT507.U0088);
      MT507.U008D = new SwiftTagDefinition("DateTime_A_98E", "Trade Date/Time");
      MT507.U008D.TagName = ":98E::";
      MT507.U008E = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U008D.Elements.Add((SwiftDefinitionElement) MT507.U008E);
      MT507.U008F = new SwiftTagSubItemDefinition("DateTimeDecimalsAndUTCIndicator", "Trade Date/Time");
      MT507.U0090 = new SwiftTagSubItemDefinition("DateTimeDecimals", "Trade Date/Time");
      MT507.U0091 = new SwiftTagSubItemDefinition("DateTime", "Date\\Time");
      MT507.U0092 = new SwiftTagSubItemDefinition("Date", "Date");
      MT507.U0091.Elements.Add((SwiftDefinitionElement) MT507.U0092);
      MT507.U0093 = new SwiftTagSubItemDefinition("Time", "Time");
      MT507.U0091.Elements.Add((SwiftDefinitionElement) MT507.U0093);
      MT507.U0090.Elements.Add((SwiftDefinitionElement) MT507.U0091);
      MT507.U0094 = new SwiftTagSubItemDefinition("Decimals", "Time");
      MT507.U0094.Mandatory = false;
      MT507.U0090.Elements.Add((SwiftDefinitionElement) MT507.U0094);
      MT507.U008F.Elements.Add((SwiftDefinitionElement) MT507.U0090);
      MT507.U0095 = new SwiftTagSubItemDefinition("UTCIndicatorRecord", "Date\\Time");
      MT507.U0095.Mandatory = false;
      MT507.U0096 = new SwiftTagSubItemDefinition("UTCIndicator", "Indicator");
      MT507.U0095.Elements.Add((SwiftDefinitionElement) MT507.U0096);
      MT507.U008F.Elements.Add((SwiftDefinitionElement) MT507.U0095);
      MT507.U008D.Elements.Add((SwiftDefinitionElement) MT507.U008F);
      MT507.U0083.Elements.Add((SwiftDefinitionElement) MT507.U008D);
      MT507.U0002.Elements.Add((SwiftDefinitionElement) MT507.U0083);
      MT507.U0097 = new SwiftTagChoiceDefinition("Choice", "");
      MT507.U0097.Multiple = true;
      MT507.U0098 = new SwiftTagDefinition("Indicator_A_22F", "Agreement Indicator");
      MT507.U0098.TagName = ":22F::";
      MT507.U0099 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0098.Elements.Add((SwiftDefinitionElement) MT507.U0099);
      MT507.U009A = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT507.U0098.Elements.Add((SwiftDefinitionElement) MT507.U009A);
      MT507.U009B = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT507.U0098.Elements.Add((SwiftDefinitionElement) MT507.U009B);
      MT507.U0097.Elements.Add((SwiftDefinitionElement) MT507.U0098);
      MT507.U009C = new SwiftTagDefinition("Indicator_A_22H", "Exposure Type Indicator");
      MT507.U009C.TagName = ":22H::";
      MT507.U009D = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U009C.Elements.Add((SwiftDefinitionElement) MT507.U009D);
      MT507.U009E = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT507.U009C.Elements.Add((SwiftDefinitionElement) MT507.U009E);
      MT507.U0097.Elements.Add((SwiftDefinitionElement) MT507.U009C);
      MT507.U0002.Elements.Add((SwiftDefinitionElement) MT507.U0097);
      MT507.U009F = new SwiftTagChoiceDefinition("Choice", "");
      MT507.U009F.Multiple = true;
      MT507.U0001U0002 = new SwiftTagDefinition("Party_A_95P", "Party");
      MT507.U0001U0002.TagName = ":95P::";
      MT507.U0001U0002.Multiple = true;
      MT507.U0002U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0001U0002.Elements.Add((SwiftDefinitionElement) MT507.U0002U0002);
      MT507.U0003U0002 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT507.U0001U0002.Elements.Add((SwiftDefinitionElement) MT507.U0003U0002);
      MT507.U009F.Elements.Add((SwiftDefinitionElement) MT507.U0001U0002);
      MT507.U0004U0002 = new SwiftTagDefinition("Party_A_95Q", "Party");
      MT507.U0004U0002.TagName = ":95Q::";
      MT507.U0004U0002.Multiple = true;
      MT507.U0005U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0004U0002.Elements.Add((SwiftDefinitionElement) MT507.U0005U0002);
      MT507.U0006U0002 = new SwiftTagSubItemDefinition("NameAndAddress_95Q", "Name and Address");
      MT507.U0004U0002.Elements.Add((SwiftDefinitionElement) MT507.U0006U0002);
      MT507.U009F.Elements.Add((SwiftDefinitionElement) MT507.U0004U0002);
      MT507.U0007U0002 = new SwiftTagDefinition("Party_A_95R", "Party");
      MT507.U0007U0002.TagName = ":95R::";
      MT507.U0007U0002.Multiple = true;
      MT507.U0008U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0007U0002.Elements.Add((SwiftDefinitionElement) MT507.U0008U0002);
      MT507.U000EU0002 = new SwiftTagSubItemDefinition("DataSourceScheme", "Data Source Scheme");
      MT507.U0007U0002.Elements.Add((SwiftDefinitionElement) MT507.U000EU0002);
      MT507.U000FU0002 = new SwiftTagSubItemDefinition("ProprietaryCode", "Proprietary Code");
      MT507.U0007U0002.Elements.Add((SwiftDefinitionElement) MT507.U000FU0002);
      MT507.U009F.Elements.Add((SwiftDefinitionElement) MT507.U0007U0002);
      MT507.U0002.Elements.Add((SwiftDefinitionElement) MT507.U009F);
      MT507.U0010U0002 = new SwiftTagDefinition("Status_A_25D", "Status");
      MT507.U0010U0002.TagName = ":25D::";
      MT507.U0011U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0010U0002.Elements.Add((SwiftDefinitionElement) MT507.U0011U0002);
      MT507.U0012U0002 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT507.U0010U0002.Elements.Add((SwiftDefinitionElement) MT507.U0012U0002);
      MT507.U0013U0002 = new SwiftTagSubItemDefinition("StatusCode", "Status Code");
      MT507.U0010U0002.Elements.Add((SwiftDefinitionElement) MT507.U0013U0002);
      MT507.U0002.Elements.Add((SwiftDefinitionElement) MT507.U0010U0002);
      MT507.U0014U0002 = new SwiftTagDefinition("Reason_A_24B", "Reason");
      MT507.U0014U0002.TagName = ":24B::";
      MT507.U0014U0002.Mandatory = false;
      MT507.U0015U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0014U0002.Elements.Add((SwiftDefinitionElement) MT507.U0015U0002);
      MT507.U0016U0002 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT507.U0014U0002.Elements.Add((SwiftDefinitionElement) MT507.U0016U0002);
      MT507.U0017U0002 = new SwiftTagSubItemDefinition("ReasonCode", "Reason Code");
      MT507.U0014U0002.Elements.Add((SwiftDefinitionElement) MT507.U0017U0002);
      MT507.U0002.Elements.Add((SwiftDefinitionElement) MT507.U0014U0002);
      MT507.U0018U0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT507.U0018U0002.Mandatory = false;
      MT507.U0018U0002.Multiple = true;
      MT507.U0019U0002 = new SwiftTagDefinition("Narrative_A_70C", "Party Contact Narrative");
      MT507.U0019U0002.TagName = ":70C::";
      MT507.U0019U0002.Multiple = true;
      MT507.U001AU0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0019U0002.Elements.Add((SwiftDefinitionElement) MT507.U001AU0002);
      MT507.U001BU0002 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT507.U0019U0002.Elements.Add((SwiftDefinitionElement) MT507.U001BU0002);
      MT507.U0018U0002.Elements.Add((SwiftDefinitionElement) MT507.U0019U0002);
      MT507.U001CU0002 = new SwiftTagDefinition("Narrative_A_70D", "Reason Narrative");
      MT507.U001CU0002.TagName = ":70D::";
      MT507.U001CU0002.Multiple = true;
      MT507.U001DU0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U001CU0002.Elements.Add((SwiftDefinitionElement) MT507.U001DU0002);
      MT507.U001EU0002 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT507.U001CU0002.Elements.Add((SwiftDefinitionElement) MT507.U001EU0002);
      MT507.U0018U0002.Elements.Add((SwiftDefinitionElement) MT507.U001CU0002);
      MT507.U0002.Elements.Add((SwiftDefinitionElement) MT507.U0018U0002);
      MT507.U001FU0002 = new SwiftTagSequenceDefinition("SequenceA2", "Linkages");
      MT507.U001FU0002.Multiple = true;
      MT507.U007FU0002 = new SwiftTagDefinition("StartOfBlock_A2_16R", "Start Of Block");
      MT507.U007FU0002.TagName = ":16R:LINK";
      MT507.U0080U0002 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT507.U0080U0002.Mandatory = false;
      MT507.U007FU0002.Elements.Add((SwiftDefinitionElement) MT507.U0080U0002);
      MT507.U001FU0002.Elements.Add((SwiftDefinitionElement) MT507.U007FU0002);
      MT507.U0081U0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT507.U0081U0002.Mandatory = false;
      MT507.U0081U0002.Multiple = true;
      MT507.U0082U0002 = new SwiftTagDefinition("NumberIdentification_A2_13A", "Linked Message");
      MT507.U0082U0002.TagName = ":13A::";
      MT507.U0082U0002.Mandatory = false;
      MT507.U0083U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0082U0002.Elements.Add((SwiftDefinitionElement) MT507.U0083U0002);
      MT507.U0084U0002 = new SwiftTagSubItemDefinition("NumberId", "Number Id");
      MT507.U0082U0002.Elements.Add((SwiftDefinitionElement) MT507.U0084U0002);
      MT507.U0081U0002.Elements.Add((SwiftDefinitionElement) MT507.U0082U0002);
      MT507.U0086U0002 = new SwiftTagDefinition("NumberIdentification_A2_13B", "Linked Message");
      MT507.U0086U0002.TagName = ":13B::";
      MT507.U0086U0002.Mandatory = false;
      MT507.U0087U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0086U0002.Elements.Add((SwiftDefinitionElement) MT507.U0087U0002);
      MT507.U0088U0002 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT507.U0086U0002.Elements.Add((SwiftDefinitionElement) MT507.U0088U0002);
      MT507.U0089U0002 = new SwiftTagSubItemDefinition("Number_13B", "Number");
      MT507.U0086U0002.Elements.Add((SwiftDefinitionElement) MT507.U0089U0002);
      MT507.U0081U0002.Elements.Add((SwiftDefinitionElement) MT507.U0086U0002);
      MT507.U001FU0002.Elements.Add((SwiftDefinitionElement) MT507.U0081U0002);
      MT507.U008AU0002 = new SwiftTagDefinition("Reference_A2_20C", "Reference");
      MT507.U008AU0002.TagName = ":20C::";
      MT507.U008BU0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U008AU0002.Elements.Add((SwiftDefinitionElement) MT507.U008BU0002);
      MT507.U008CU0002 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT507.U008AU0002.Elements.Add((SwiftDefinitionElement) MT507.U008CU0002);
      MT507.U001FU0002.Elements.Add((SwiftDefinitionElement) MT507.U008AU0002);
      MT507.U008DU0002 = new SwiftTagDefinition("EndOfBlock_A2_16S", "End Of Block");
      MT507.U008DU0002.TagName = ":16S:LINK";
      MT507.U008EU0002 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT507.U008EU0002.Mandatory = false;
      MT507.U008DU0002.Elements.Add((SwiftDefinitionElement) MT507.U008EU0002);
      MT507.U001FU0002.Elements.Add((SwiftDefinitionElement) MT507.U008DU0002);
      MT507.U0002.Elements.Add((SwiftDefinitionElement) MT507.U001FU0002);
      MT507.U008FU0002 = new SwiftTagDefinition("EndOfBlock_A_16S", "End Of Block");
      MT507.U008FU0002.TagName = ":16S:GENL";
      MT507.U0090U0002 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT507.U0090U0002.Mandatory = false;
      MT507.U008FU0002.Elements.Add((SwiftDefinitionElement) MT507.U0090U0002);
      MT507.U0002.Elements.Add((SwiftDefinitionElement) MT507.U008FU0002);
      MT507.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT507.U0002);
      MT507.U0091U0002 = new SwiftTagSequenceDefinition("SequenceB", "Collateral Details");
      MT507.U0091U0002.Mandatory = false;
      MT507.U0091U0002.Multiple = true;
      MT507.U0092U0002 = new SwiftTagDefinition("StartOfBlock_B_16R", "Start Of Block");
      MT507.U0092U0002.TagName = ":16R:COLD";
      MT507.U0093U0002 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT507.U0093U0002.Mandatory = false;
      MT507.U0092U0002.Elements.Add((SwiftDefinitionElement) MT507.U0093U0002);
      MT507.U0091U0002.Elements.Add((SwiftDefinitionElement) MT507.U0092U0002);
      MT507.U0094U0002 = new SwiftTagDefinition("Reference_B_20C", "Collateral Reference");
      MT507.U0094U0002.TagName = ":20C::";
      MT507.U0095U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0094U0002.Elements.Add((SwiftDefinitionElement) MT507.U0095U0002);
      MT507.U0096U0002 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT507.U0094U0002.Elements.Add((SwiftDefinitionElement) MT507.U0096U0002);
      MT507.U0091U0002.Elements.Add((SwiftDefinitionElement) MT507.U0094U0002);
      MT507.U0097U0002 = new SwiftTagDefinition("Indicator_B_22H", "Collateral Type Indicator");
      MT507.U0097U0002.TagName = ":22H::";
      MT507.U0098U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0097U0002.Elements.Add((SwiftDefinitionElement) MT507.U0098U0002);
      MT507.U0099U0002 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT507.U0097U0002.Elements.Add((SwiftDefinitionElement) MT507.U0099U0002);
      MT507.U0091U0002.Elements.Add((SwiftDefinitionElement) MT507.U0097U0002);
      MT507.U009AU0002 = new SwiftTagDefinition("Status_B_25D", "Collateral Status");
      MT507.U009AU0002.TagName = ":25D::";
      MT507.U009BU0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U009AU0002.Elements.Add((SwiftDefinitionElement) MT507.U009BU0002);
      MT507.U009CU0002 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT507.U009AU0002.Elements.Add((SwiftDefinitionElement) MT507.U009CU0002);
      MT507.U009DU0002 = new SwiftTagSubItemDefinition("StatusCode", "Status Code");
      MT507.U009AU0002.Elements.Add((SwiftDefinitionElement) MT507.U009DU0002);
      MT507.U0091U0002.Elements.Add((SwiftDefinitionElement) MT507.U009AU0002);
      MT507.U009EU0002 = new SwiftTagDefinition("Reason_B_24B", "Rejection Reason");
      MT507.U009EU0002.TagName = ":24B::";
      MT507.U009EU0002.Mandatory = false;
      MT507.U009FU0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U009EU0002.Elements.Add((SwiftDefinitionElement) MT507.U009FU0002);
      MT507.U0001U0003 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT507.U009EU0002.Elements.Add((SwiftDefinitionElement) MT507.U0001U0003);
      MT507.U0002U0003 = new SwiftTagSubItemDefinition("ReasonCode", "Reason Code");
      MT507.U009EU0002.Elements.Add((SwiftDefinitionElement) MT507.U0002U0003);
      MT507.U0091U0002.Elements.Add((SwiftDefinitionElement) MT507.U009EU0002);
      MT507.U0003U0003 = new SwiftTagDefinition("Narrative_B_70D", "Reason Narrative");
      MT507.U0003U0003.TagName = ":70D::";
      MT507.U0003U0003.Mandatory = false;
      MT507.U0004U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0003U0003.Elements.Add((SwiftDefinitionElement) MT507.U0004U0003);
      MT507.U0005U0003 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT507.U0003U0003.Elements.Add((SwiftDefinitionElement) MT507.U0005U0003);
      MT507.U0091U0002.Elements.Add((SwiftDefinitionElement) MT507.U0003U0003);
      MT507.U0006U0003 = new SwiftTagSequenceDefinition("SequenceB1", "General Settlement Details");
      MT507.U0006U0003.Mandatory = false;
      MT507.U0007U0003 = new SwiftTagDefinition("StartOfBlock_B1_16R", "Start Of Block");
      MT507.U0007U0003.TagName = ":16R:SETTL";
      MT507.U0008U0003 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT507.U0008U0003.Mandatory = false;
      MT507.U0007U0003.Elements.Add((SwiftDefinitionElement) MT507.U0008U0003);
      MT507.U0006U0003.Elements.Add((SwiftDefinitionElement) MT507.U0007U0003);
      MT507.U000EU0003 = new SwiftTagSequenceDefinition("SequenceB1a", "Settlement Details");
      MT507.U000EU0003.Mandatory = false;
      MT507.U000FU0003 = new SwiftTagDefinition("StartOfBlock_B1a_16R", "Start Of Block");
      MT507.U000FU0003.TagName = ":16R:SETDET";
      MT507.U0010U0003 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT507.U0010U0003.Mandatory = false;
      MT507.U000FU0003.Elements.Add((SwiftDefinitionElement) MT507.U0010U0003);
      MT507.U000EU0003.Elements.Add((SwiftDefinitionElement) MT507.U000FU0003);
      MT507.U0011U0003 = new SwiftTagChoiceDefinition("Choice", "");
      MT507.U0011U0003.Multiple = true;
      MT507.U0012U0003 = new SwiftTagDefinition("Indicator_B1a_22H", "Indicator");
      MT507.U0012U0003.TagName = ":22H::";
      MT507.U0012U0003.Multiple = true;
      MT507.U0013U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0012U0003.Elements.Add((SwiftDefinitionElement) MT507.U0013U0003);
      MT507.U0014U0003 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT507.U0012U0003.Elements.Add((SwiftDefinitionElement) MT507.U0014U0003);
      MT507.U0011U0003.Elements.Add((SwiftDefinitionElement) MT507.U0012U0003);
      MT507.U0015U0003 = new SwiftTagDefinition("Indicator_B1a_22F", "Indicator");
      MT507.U0015U0003.TagName = ":22F::";
      MT507.U0015U0003.Multiple = true;
      MT507.U0016U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0015U0003.Elements.Add((SwiftDefinitionElement) MT507.U0016U0003);
      MT507.U0017U0003 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT507.U0015U0003.Elements.Add((SwiftDefinitionElement) MT507.U0017U0003);
      MT507.U0018U0003 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT507.U0015U0003.Elements.Add((SwiftDefinitionElement) MT507.U0018U0003);
      MT507.U0011U0003.Elements.Add((SwiftDefinitionElement) MT507.U0015U0003);
      MT507.U000EU0003.Elements.Add((SwiftDefinitionElement) MT507.U0011U0003);
      MT507.U0019U0003 = new SwiftTagSequenceDefinition("SequenceB1a1", "Settlement Parties");
      MT507.U0019U0003.Mandatory = false;
      MT507.U0019U0003.Multiple = true;
      MT507.U001AU0003 = new SwiftTagDefinition("StartOfBlock_B1a1_16R", "Start Of Block");
      MT507.U001AU0003.TagName = ":16R:SETPRTY";
      MT507.U001BU0003 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT507.U001BU0003.Mandatory = false;
      MT507.U001AU0003.Elements.Add((SwiftDefinitionElement) MT507.U001BU0003);
      MT507.U0019U0003.Elements.Add((SwiftDefinitionElement) MT507.U001AU0003);
      MT507.U001CU0003 = new SwiftTagChoiceDefinition("Choice", "");
      MT507.U001CU0003.Multiple = true;
      MT507.U001DU0003 = new SwiftTagDefinition("Party_B1a1_95C", "Party");
      MT507.U001DU0003.TagName = ":95C::";
      MT507.U001DU0003.Multiple = true;
      MT507.U001EU0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U001DU0003.Elements.Add((SwiftDefinitionElement) MT507.U001EU0003);
      MT507.U001FU0003 = new SwiftTagSubItemDefinition("CountryCode", "Country Code");
      MT507.U001DU0003.Elements.Add((SwiftDefinitionElement) MT507.U001FU0003);
      MT507.U001CU0003.Elements.Add((SwiftDefinitionElement) MT507.U001DU0003);
      MT507.U007FU0003 = new SwiftTagDefinition("Party_B1a1_95P", "Party");
      MT507.U007FU0003.TagName = ":95P::";
      MT507.U007FU0003.Multiple = true;
      MT507.U0080U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U007FU0003.Elements.Add((SwiftDefinitionElement) MT507.U0080U0003);
      MT507.U0081U0003 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT507.U007FU0003.Elements.Add((SwiftDefinitionElement) MT507.U0081U0003);
      MT507.U001CU0003.Elements.Add((SwiftDefinitionElement) MT507.U007FU0003);
      MT507.U0082U0003 = new SwiftTagDefinition("Party_B1a1_95Q", "Party");
      MT507.U0082U0003.TagName = ":95Q::";
      MT507.U0082U0003.Multiple = true;
      MT507.U0083U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0082U0003.Elements.Add((SwiftDefinitionElement) MT507.U0083U0003);
      MT507.U0084U0003 = new SwiftTagSubItemDefinition("NameAndAddress_95Q", "Name and Address");
      MT507.U0082U0003.Elements.Add((SwiftDefinitionElement) MT507.U0084U0003);
      MT507.U001CU0003.Elements.Add((SwiftDefinitionElement) MT507.U0082U0003);
      MT507.U0086U0003 = new SwiftTagDefinition("Party_B1a1_95R", "Party");
      MT507.U0086U0003.TagName = ":95R::";
      MT507.U0086U0003.Multiple = true;
      MT507.U0087U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0086U0003.Elements.Add((SwiftDefinitionElement) MT507.U0087U0003);
      MT507.U0088U0003 = new SwiftTagSubItemDefinition("DataSourceScheme", "Data Source Scheme");
      MT507.U0086U0003.Elements.Add((SwiftDefinitionElement) MT507.U0088U0003);
      MT507.U0089U0003 = new SwiftTagSubItemDefinition("ProprietaryCode", "Proprietary Code");
      MT507.U0086U0003.Elements.Add((SwiftDefinitionElement) MT507.U0089U0003);
      MT507.U001CU0003.Elements.Add((SwiftDefinitionElement) MT507.U0086U0003);
      MT507.U008AU0003 = new SwiftTagDefinition("Party_B1a1_95S", "Party");
      MT507.U008AU0003.TagName = ":95S::";
      MT507.U008AU0003.Multiple = true;
      MT507.U008BU0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U008AU0003.Elements.Add((SwiftDefinitionElement) MT507.U008BU0003);
      MT507.U008CU0003 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT507.U008AU0003.Elements.Add((SwiftDefinitionElement) MT507.U008CU0003);
      MT507.U008DU0003 = new SwiftTagSubItemDefinition("TypeOfID", "Type Of ID");
      MT507.U008AU0003.Elements.Add((SwiftDefinitionElement) MT507.U008DU0003);
      MT507.U008EU0003 = new SwiftTagSubItemDefinition("CountryCode", "Country Code");
      MT507.U008AU0003.Elements.Add((SwiftDefinitionElement) MT507.U008EU0003);
      MT507.U008FU0003 = new SwiftTagSubItemDefinition("AlternateID", "Alternate ID");
      MT507.U008AU0003.Elements.Add((SwiftDefinitionElement) MT507.U008FU0003);
      MT507.U001CU0003.Elements.Add((SwiftDefinitionElement) MT507.U008AU0003);
      MT507.U0019U0003.Elements.Add((SwiftDefinitionElement) MT507.U001CU0003);
      MT507.U0090U0003 = new SwiftTagChoiceDefinition("Choice", "");
      MT507.U0090U0003.Mandatory = false;
      MT507.U0090U0003.Multiple = true;
      MT507.U0091U0003 = new SwiftTagDefinition("Account_B1a1_97A", "Safekeeping Account");
      MT507.U0091U0003.TagName = ":97A::";
      MT507.U0092U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0091U0003.Elements.Add((SwiftDefinitionElement) MT507.U0092U0003);
      MT507.U0093U0003 = new SwiftTagSubItemDefinition("AccountNumber", "Account Number");
      MT507.U0091U0003.Elements.Add((SwiftDefinitionElement) MT507.U0093U0003);
      MT507.U0090U0003.Elements.Add((SwiftDefinitionElement) MT507.U0091U0003);
      MT507.U0094U0003 = new SwiftTagDefinition("Account_B1a1_97B", "Safekeeping Account");
      MT507.U0094U0003.TagName = ":97B::";
      MT507.U0095U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0094U0003.Elements.Add((SwiftDefinitionElement) MT507.U0095U0003);
      MT507.U0096U0003 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT507.U0094U0003.Elements.Add((SwiftDefinitionElement) MT507.U0096U0003);
      MT507.U0097U0003 = new SwiftTagSubItemDefinition("AccountTypeCode", "Account Type Code");
      MT507.U0094U0003.Elements.Add((SwiftDefinitionElement) MT507.U0097U0003);
      MT507.U0098U0003 = new SwiftTagSubItemDefinition("AccountNumber", "Account Number");
      MT507.U0094U0003.Elements.Add((SwiftDefinitionElement) MT507.U0098U0003);
      MT507.U0090U0003.Elements.Add((SwiftDefinitionElement) MT507.U0094U0003);
      MT507.U0019U0003.Elements.Add((SwiftDefinitionElement) MT507.U0090U0003);
      MT507.U0099U0003 = new SwiftTagDefinition("Narrative_B1a1_70C", "Party Contact Narrative");
      MT507.U0099U0003.TagName = ":70C::";
      MT507.U0099U0003.Mandatory = false;
      MT507.U009AU0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0099U0003.Elements.Add((SwiftDefinitionElement) MT507.U009AU0003);
      MT507.U009BU0003 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT507.U0099U0003.Elements.Add((SwiftDefinitionElement) MT507.U009BU0003);
      MT507.U0019U0003.Elements.Add((SwiftDefinitionElement) MT507.U0099U0003);
      MT507.U009CU0003 = new SwiftTagDefinition("EndOfBlock_B1a1_16S", "End Of Block");
      MT507.U009CU0003.TagName = ":16S:SETPRTY";
      MT507.U009DU0003 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT507.U009DU0003.Mandatory = false;
      MT507.U009CU0003.Elements.Add((SwiftDefinitionElement) MT507.U009DU0003);
      MT507.U0019U0003.Elements.Add((SwiftDefinitionElement) MT507.U009CU0003);
      MT507.U000EU0003.Elements.Add((SwiftDefinitionElement) MT507.U0019U0003);
      MT507.U009EU0003 = new SwiftTagDefinition("EndOfBlock_B1a_16S", "End Of Block");
      MT507.U009EU0003.TagName = ":16S:SETDET";
      MT507.U009FU0003 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT507.U009FU0003.Mandatory = false;
      MT507.U009EU0003.Elements.Add((SwiftDefinitionElement) MT507.U009FU0003);
      MT507.U000EU0003.Elements.Add((SwiftDefinitionElement) MT507.U009EU0003);
      MT507.U0006U0003.Elements.Add((SwiftDefinitionElement) MT507.U000EU0003);
      MT507.U0001U0004 = new SwiftTagSequenceDefinition("SequenceB1b", "Cash Settlement Details");
      MT507.U0001U0004.Mandatory = false;
      MT507.U0002U0004 = new SwiftTagDefinition("StartOfBlock_B1b_16R", "Start Of Block");
      MT507.U0002U0004.TagName = ":16R:CASHSET";
      MT507.U0003U0004 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT507.U0003U0004.Mandatory = false;
      MT507.U0002U0004.Elements.Add((SwiftDefinitionElement) MT507.U0003U0004);
      MT507.U0001U0004.Elements.Add((SwiftDefinitionElement) MT507.U0002U0004);
      MT507.U0004U0004 = new SwiftTagDefinition("Indicator_B1b_22F", "Settlement Transaction Condition");
      MT507.U0004U0004.TagName = ":22F::";
      MT507.U0004U0004.Mandatory = false;
      MT507.U0005U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0004U0004.Elements.Add((SwiftDefinitionElement) MT507.U0005U0004);
      MT507.U0006U0004 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT507.U0004U0004.Elements.Add((SwiftDefinitionElement) MT507.U0006U0004);
      MT507.U0007U0004 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT507.U0004U0004.Elements.Add((SwiftDefinitionElement) MT507.U0007U0004);
      MT507.U0001U0004.Elements.Add((SwiftDefinitionElement) MT507.U0004U0004);
      MT507.U0008U0004 = new SwiftTagSequenceDefinition("SequenceB1b1", "Cash Parties");
      MT507.U0008U0004.Mandatory = false;
      MT507.U0008U0004.Multiple = true;
      MT507.U000EU0004 = new SwiftTagDefinition("StartOfBlock_B1b1_16R", "Start Of Block");
      MT507.U000EU0004.TagName = ":16R:CSHPRTY";
      MT507.U000FU0004 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT507.U000FU0004.Mandatory = false;
      MT507.U000EU0004.Elements.Add((SwiftDefinitionElement) MT507.U000FU0004);
      MT507.U0008U0004.Elements.Add((SwiftDefinitionElement) MT507.U000EU0004);
      MT507.U0010U0004 = new SwiftTagChoiceDefinition("Choice", "");
      MT507.U0010U0004.Multiple = true;
      MT507.U0011U0004 = new SwiftTagDefinition("Party_B1b1_95P", "Party");
      MT507.U0011U0004.TagName = ":95P::";
      MT507.U0011U0004.Multiple = true;
      MT507.U0012U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0011U0004.Elements.Add((SwiftDefinitionElement) MT507.U0012U0004);
      MT507.U0013U0004 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT507.U0011U0004.Elements.Add((SwiftDefinitionElement) MT507.U0013U0004);
      MT507.U0010U0004.Elements.Add((SwiftDefinitionElement) MT507.U0011U0004);
      MT507.U0014U0004 = new SwiftTagDefinition("Party_B1b1_95Q", "Party");
      MT507.U0014U0004.TagName = ":95Q::";
      MT507.U0014U0004.Multiple = true;
      MT507.U0015U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0014U0004.Elements.Add((SwiftDefinitionElement) MT507.U0015U0004);
      MT507.U0016U0004 = new SwiftTagSubItemDefinition("NameAndAddress_95Q", "Name and Address");
      MT507.U0014U0004.Elements.Add((SwiftDefinitionElement) MT507.U0016U0004);
      MT507.U0010U0004.Elements.Add((SwiftDefinitionElement) MT507.U0014U0004);
      MT507.U0017U0004 = new SwiftTagDefinition("Party_B1b1_95R", "Party");
      MT507.U0017U0004.TagName = ":95R::";
      MT507.U0017U0004.Multiple = true;
      MT507.U0018U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0017U0004.Elements.Add((SwiftDefinitionElement) MT507.U0018U0004);
      MT507.U0019U0004 = new SwiftTagSubItemDefinition("DataSourceScheme", "Data Source Scheme");
      MT507.U0017U0004.Elements.Add((SwiftDefinitionElement) MT507.U0019U0004);
      MT507.U001AU0004 = new SwiftTagSubItemDefinition("ProprietaryCode", "Proprietary Code");
      MT507.U0017U0004.Elements.Add((SwiftDefinitionElement) MT507.U001AU0004);
      MT507.U0010U0004.Elements.Add((SwiftDefinitionElement) MT507.U0017U0004);
      MT507.U001BU0004 = new SwiftTagDefinition("Party_B1b1_95S", "Party");
      MT507.U001BU0004.TagName = ":95S::";
      MT507.U001BU0004.Multiple = true;
      MT507.U001CU0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U001BU0004.Elements.Add((SwiftDefinitionElement) MT507.U001CU0004);
      MT507.U001DU0004 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT507.U001BU0004.Elements.Add((SwiftDefinitionElement) MT507.U001DU0004);
      MT507.U001EU0004 = new SwiftTagSubItemDefinition("TypeOfID", "Type Of ID");
      MT507.U001BU0004.Elements.Add((SwiftDefinitionElement) MT507.U001EU0004);
      MT507.U001FU0004 = new SwiftTagSubItemDefinition("CountryCode", "Country Code");
      MT507.U001BU0004.Elements.Add((SwiftDefinitionElement) MT507.U001FU0004);
      MT507.U007FU0004 = new SwiftTagSubItemDefinition("AlternateID", "Alternate ID");
      MT507.U001BU0004.Elements.Add((SwiftDefinitionElement) MT507.U007FU0004);
      MT507.U0010U0004.Elements.Add((SwiftDefinitionElement) MT507.U001BU0004);
      MT507.U0008U0004.Elements.Add((SwiftDefinitionElement) MT507.U0010U0004);
      MT507.U0080U0004 = new SwiftTagChoiceDefinition("Choice", "");
      MT507.U0080U0004.Mandatory = false;
      MT507.U0080U0004.Multiple = true;
      MT507.U0081U0004 = new SwiftTagDefinition("Account_B1b1_97A", "Account");
      MT507.U0081U0004.TagName = ":97A::";
      MT507.U0081U0004.Multiple = true;
      MT507.U0082U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0081U0004.Elements.Add((SwiftDefinitionElement) MT507.U0082U0004);
      MT507.U0083U0004 = new SwiftTagSubItemDefinition("AccountNumber", "Account Number");
      MT507.U0081U0004.Elements.Add((SwiftDefinitionElement) MT507.U0083U0004);
      MT507.U0080U0004.Elements.Add((SwiftDefinitionElement) MT507.U0081U0004);
      MT507.U0084U0004 = new SwiftTagDefinition("Account_B1b1_97E", "Account");
      MT507.U0084U0004.TagName = ":97E::";
      MT507.U0084U0004.Multiple = true;
      MT507.U0086U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0084U0004.Elements.Add((SwiftDefinitionElement) MT507.U0086U0004);
      MT507.U0087U0004 = new SwiftTagSubItemDefinition("InternationalBankAccountNumber", "International Bank Account Number");
      MT507.U0084U0004.Elements.Add((SwiftDefinitionElement) MT507.U0087U0004);
      MT507.U0080U0004.Elements.Add((SwiftDefinitionElement) MT507.U0084U0004);
      MT507.U0008U0004.Elements.Add((SwiftDefinitionElement) MT507.U0080U0004);
      MT507.U0088U0004 = new SwiftTagDefinition("Narrative_B1b1_70C", "Party Contact Narrative");
      MT507.U0088U0004.TagName = ":70C::";
      MT507.U0088U0004.Mandatory = false;
      MT507.U0089U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0088U0004.Elements.Add((SwiftDefinitionElement) MT507.U0089U0004);
      MT507.U008AU0004 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT507.U0088U0004.Elements.Add((SwiftDefinitionElement) MT507.U008AU0004);
      MT507.U0008U0004.Elements.Add((SwiftDefinitionElement) MT507.U0088U0004);
      MT507.U008BU0004 = new SwiftTagDefinition("EndOfBlock_B1b1_16S", "End Of Block");
      MT507.U008BU0004.TagName = ":16S:CSHPRTY";
      MT507.U008CU0004 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT507.U008CU0004.Mandatory = false;
      MT507.U008BU0004.Elements.Add((SwiftDefinitionElement) MT507.U008CU0004);
      MT507.U0008U0004.Elements.Add((SwiftDefinitionElement) MT507.U008BU0004);
      MT507.U0001U0004.Elements.Add((SwiftDefinitionElement) MT507.U0008U0004);
      MT507.U008DU0004 = new SwiftTagDefinition("EndOfBlock_B1b_16S", "End Of Block");
      MT507.U008DU0004.TagName = ":16S:CASHSET";
      MT507.U008EU0004 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT507.U008EU0004.Mandatory = false;
      MT507.U008DU0004.Elements.Add((SwiftDefinitionElement) MT507.U008EU0004);
      MT507.U0001U0004.Elements.Add((SwiftDefinitionElement) MT507.U008DU0004);
      MT507.U0006U0003.Elements.Add((SwiftDefinitionElement) MT507.U0001U0004);
      MT507.U008FU0004 = new SwiftTagDefinition("EndOfBlock_B1_16S", "End Of Block");
      MT507.U008FU0004.TagName = ":16S:SETTL";
      MT507.U0090U0004 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT507.U0090U0004.Mandatory = false;
      MT507.U008FU0004.Elements.Add((SwiftDefinitionElement) MT507.U0090U0004);
      MT507.U0006U0003.Elements.Add((SwiftDefinitionElement) MT507.U008FU0004);
      MT507.U0091U0002.Elements.Add((SwiftDefinitionElement) MT507.U0006U0003);
      MT507.U0091U0004 = new SwiftTagDefinition("EndOfBlock_B_16S", "End Of Block");
      MT507.U0091U0004.TagName = ":16S:COLD";
      MT507.U0092U0004 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT507.U0092U0004.Mandatory = false;
      MT507.U0091U0004.Elements.Add((SwiftDefinitionElement) MT507.U0092U0004);
      MT507.U0091U0002.Elements.Add((SwiftDefinitionElement) MT507.U0091U0004);
      MT507.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT507.U0091U0002);
      MT507.U0093U0004 = new SwiftTagSequenceDefinition("SequenceC", "Additional Information");
      MT507.U0093U0004.Mandatory = false;
      MT507.U0094U0004 = new SwiftTagDefinition("StartOfBlock_C_16R", "Start of Block");
      MT507.U0094U0004.TagName = ":16R:ADDINFO";
      MT507.U0095U0004 = new SwiftTagSubItemDefinition("StartOfBlock", "Start of Block ");
      MT507.U0095U0004.Mandatory = false;
      MT507.U0094U0004.Elements.Add((SwiftDefinitionElement) MT507.U0095U0004);
      MT507.U0093U0004.Elements.Add((SwiftDefinitionElement) MT507.U0094U0004);
      MT507.U0096U0004 = new SwiftTagChoiceDefinition("Choice", "");
      MT507.U0096U0004.Mandatory = false;
      MT507.U0096U0004.Multiple = true;
      MT507.U0097U0004 = new SwiftTagDefinition("Party_C_95P", "Party");
      MT507.U0097U0004.TagName = ":95P::";
      MT507.U0097U0004.Multiple = true;
      MT507.U0098U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U0097U0004.Elements.Add((SwiftDefinitionElement) MT507.U0098U0004);
      MT507.U0099U0004 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT507.U0097U0004.Elements.Add((SwiftDefinitionElement) MT507.U0099U0004);
      MT507.U0096U0004.Elements.Add((SwiftDefinitionElement) MT507.U0097U0004);
      MT507.U009AU0004 = new SwiftTagDefinition("Party_C_95R", "Party");
      MT507.U009AU0004.TagName = ":95R::";
      MT507.U009AU0004.Multiple = true;
      MT507.U009BU0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U009AU0004.Elements.Add((SwiftDefinitionElement) MT507.U009BU0004);
      MT507.U009CU0004 = new SwiftTagSubItemDefinition("DataSourceScheme", "Data Source Scheme");
      MT507.U009AU0004.Elements.Add((SwiftDefinitionElement) MT507.U009CU0004);
      MT507.U009DU0004 = new SwiftTagSubItemDefinition("ProprietaryCode", "Proprietary Code");
      MT507.U009AU0004.Elements.Add((SwiftDefinitionElement) MT507.U009DU0004);
      MT507.U0096U0004.Elements.Add((SwiftDefinitionElement) MT507.U009AU0004);
      MT507.U009EU0004 = new SwiftTagDefinition("Party_C_95Q", "Party");
      MT507.U009EU0004.TagName = ":95Q::";
      MT507.U009EU0004.Multiple = true;
      MT507.U009FU0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT507.U009EU0004.Elements.Add((SwiftDefinitionElement) MT507.U009FU0004);
      MT507.U0001U0005 = new SwiftTagSubItemDefinition("NameAndAddress_95Q", "Name And Address");
      MT507.U009EU0004.Elements.Add((SwiftDefinitionElement) MT507.U0001U0005);
      MT507.U0096U0004.Elements.Add((SwiftDefinitionElement) MT507.U009EU0004);
      MT507.U0093U0004.Elements.Add((SwiftDefinitionElement) MT507.U0096U0004);
      MT507.U0002U0005 = new SwiftTagDefinition("EndOfBlock_C_16S", "End of Block");
      MT507.U0002U0005.TagName = ":16S:ADDINFO";
      MT507.U0003U0005 = new SwiftTagSubItemDefinition("EndOfBlock", "End of Block");
      MT507.U0003U0005.Mandatory = false;
      MT507.U0002U0005.Elements.Add((SwiftDefinitionElement) MT507.U0003U0005);
      MT507.U0093U0004.Elements.Add((SwiftDefinitionElement) MT507.U0002U0005);
      MT507.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT507.U0093U0004);
    }

    public class SequenceAClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT507.U0002;
        }
      }

      [Description("Start Of Block")]
      public Tag16R StartOfBlock_A_16R
      {
        get
        {
          return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0003);
        }
      }

      [Description("Start Of Block")]
      public Tag16R Tag16R_StartOfBlock_A
      {
        get
        {
          return this.StartOfBlock_A_16R;
        }
      }

      [Description("Reference")]
      public Tag20C[] Reference_A_20C
      {
        get
        {
          int index = -1;
          List<Tag20C> list = new List<Tag20C>();
          int count;
          do
          {
            ++index;
            Tag20C tag20C = new Tag20C((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U0005);
            count = this.ListTags((SwiftElement) tag20C).Count;
            if (count > 0)
              list.Add(tag20C);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Reference")]
      public Tag20C[] Tag20C_Reference_A
      {
        get
        {
          return this.Reference_A_20C;
        }
      }

      [Description("Function Of The Message")]
      public Tag23G FunctionOfTheMessage_A_23G
      {
        get
        {
          return new Tag23G((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0008);
        }
      }

      [Description("Function Of The Message")]
      public Tag23G Tag23G_FunctionOfTheMessage_A
      {
        get
        {
          return this.FunctionOfTheMessage_A_23G;
        }
      }

      [Description("Agreement")]
      public MT507.SequenceAClass.SequenceA1Class[] SequenceA1
      {
        get
        {
          int index = -1;
          List<MT507.SequenceAClass.SequenceA1Class> list = new List<MT507.SequenceAClass.SequenceA1Class>();
          int count;
          do
          {
            ++index;
            MT507.SequenceAClass.SequenceA1Class sequenceA1Class = new MT507.SequenceAClass.SequenceA1Class((SwiftElement) this, index, false);
            count = this.ListTags((SwiftElement) sequenceA1Class).Count;
            if (count > 0)
              list.Add(sequenceA1Class);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Preparation Date/Time")]
      public Tag98A Date_A_98A
      {
        get
        {
          return new Tag98A((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0084);
        }
      }

      [Description("Preparation Date/Time")]
      public Tag98A Tag98A_Date_A
      {
        get
        {
          return this.Date_A_98A;
        }
      }

      [Description("Preparation Date/Time")]
      public Tag98C DateTime_A_98C
      {
        get
        {
          return new Tag98C((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0088);
        }
      }

      [Description("Preparation Date/Time")]
      public Tag98C Tag98C_DateTime_A
      {
        get
        {
          return this.DateTime_A_98C;
        }
      }

      [Description("Trade Date/Time")]
      public Tag98E DateTime_A_98E
      {
        get
        {
          return new Tag98E((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U008D);
        }
      }

      [Description("Trade Date/Time")]
      public Tag98E Tag98E_DateTime_A
      {
        get
        {
          return this.DateTime_A_98E;
        }
      }

      [Description("Agreement Indicator")]
      public Tag22F Indicator_A_22F
      {
        get
        {
          return new Tag22F((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0098);
        }
      }

      [Description("Agreement Indicator")]
      public Tag22F Tag22F_Indicator_A
      {
        get
        {
          return this.Indicator_A_22F;
        }
      }

      [Description("Exposure Type Indicator")]
      public Tag22H Indicator_A_22H
      {
        get
        {
          return new Tag22H((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U009C);
        }
      }

      [Description("Exposure Type Indicator")]
      public Tag22H Tag22H_Indicator_A
      {
        get
        {
          return this.Indicator_A_22H;
        }
      }

      [Description("Party")]
      public Tag95P[] Party_A_95P
      {
        get
        {
          int index = -1;
          List<Tag95P> list = new List<Tag95P>();
          int count;
          do
          {
            ++index;
            Tag95P tag95P = new Tag95P((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U0001U0002);
            count = this.ListTags((SwiftElement) tag95P).Count;
            if (count > 0)
              list.Add(tag95P);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95P[] Tag95P_Party_A
      {
        get
        {
          return this.Party_A_95P;
        }
      }

      [Description("Party")]
      public Tag95Q[] Party_A_95Q
      {
        get
        {
          int index = -1;
          List<Tag95Q> list = new List<Tag95Q>();
          int count;
          do
          {
            ++index;
            Tag95Q tag95Q = new Tag95Q((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U0004U0002);
            count = this.ListTags((SwiftElement) tag95Q).Count;
            if (count > 0)
              list.Add(tag95Q);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95Q[] Tag95Q_Party_A
      {
        get
        {
          return this.Party_A_95Q;
        }
      }

      [Description("Party")]
      public Tag95R[] Party_A_95R
      {
        get
        {
          int index = -1;
          List<Tag95R> list = new List<Tag95R>();
          int count;
          do
          {
            ++index;
            Tag95R tag95R = new Tag95R((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U0007U0002);
            count = this.ListTags((SwiftElement) tag95R).Count;
            if (count > 0)
              list.Add(tag95R);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95R[] Tag95R_Party_A
      {
        get
        {
          return this.Party_A_95R;
        }
      }

      [Description("Status")]
      public Tag25D Status_A_25D
      {
        get
        {
          return new Tag25D((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0010U0002);
        }
      }

      [Description("Status")]
      public Tag25D Tag25D_Status_A
      {
        get
        {
          return this.Status_A_25D;
        }
      }

      [Description("Reason")]
      public Tag24B Reason_A_24B
      {
        get
        {
          return new Tag24B((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0014U0002);
        }
      }

      [Description("Reason")]
      public Tag24B Tag24B_Reason_A
      {
        get
        {
          return this.Reason_A_24B;
        }
      }

      [Description("Party Contact Narrative")]
      public Tag70C[] Narrative_A_70C
      {
        get
        {
          int index = -1;
          List<Tag70C> list = new List<Tag70C>();
          int count;
          do
          {
            ++index;
            Tag70C tag70C = new Tag70C((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U0019U0002);
            count = this.ListTags((SwiftElement) tag70C).Count;
            if (count > 0)
              list.Add(tag70C);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party Contact Narrative")]
      public Tag70C[] Tag70C_Narrative_A
      {
        get
        {
          return this.Narrative_A_70C;
        }
      }

      [Description("Reason Narrative")]
      public Tag70D[] Narrative_A_70D
      {
        get
        {
          int index = -1;
          List<Tag70D> list = new List<Tag70D>();
          int count;
          do
          {
            ++index;
            Tag70D tag70D = new Tag70D((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U001CU0002);
            count = this.ListTags((SwiftElement) tag70D).Count;
            if (count > 0)
              list.Add(tag70D);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Reason Narrative")]
      public Tag70D[] Tag70D_Narrative_A
      {
        get
        {
          return this.Narrative_A_70D;
        }
      }

      [Description("Linkages")]
      public MT507.SequenceAClass.SequenceA2Class[] SequenceA2
      {
        get
        {
          int index = -1;
          List<MT507.SequenceAClass.SequenceA2Class> list = new List<MT507.SequenceAClass.SequenceA2Class>();
          int count;
          do
          {
            ++index;
            MT507.SequenceAClass.SequenceA2Class sequenceA2Class = new MT507.SequenceAClass.SequenceA2Class((SwiftElement) this, index, false);
            count = this.ListTags((SwiftElement) sequenceA2Class).Count;
            if (count > 0)
              list.Add(sequenceA2Class);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("End Of Block")]
      public Tag16S EndOfBlock_A_16S
      {
        get
        {
          return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U008FU0002);
        }
      }

      [Description("End Of Block")]
      public Tag16S Tag16S_EndOfBlock_A
      {
        get
        {
          return this.EndOfBlock_A_16S;
        }
      }

      internal SequenceAClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public Tag20C AddReference_A_20C()
      {
        return new Tag20C((SwiftElement) this, this.Reference_A_20C.Length, (SwiftDefinitionElement) MT507.U0005)
        {
          Value = string.Empty
        };
      }

      public void RemoveReference_A_20C(Tag20C tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public MT507.SequenceAClass.SequenceA1Class AddSequenceA1()
      {
        return new MT507.SequenceAClass.SequenceA1Class((SwiftElement) this, this.SequenceA1.Length, true);
      }

      public void RemoveSequenceA1(MT507.SequenceAClass.SequenceA1Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public Tag95P AddParty_A_95P()
      {
        return new Tag95P((SwiftElement) this, this.Party_A_95P.Length, (SwiftDefinitionElement) MT507.U0001U0002)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_A_95P(Tag95P tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag95Q AddParty_A_95Q()
      {
        return new Tag95Q((SwiftElement) this, this.Party_A_95Q.Length, (SwiftDefinitionElement) MT507.U0004U0002)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_A_95Q(Tag95Q tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag95R AddParty_A_95R()
      {
        return new Tag95R((SwiftElement) this, this.Party_A_95R.Length, (SwiftDefinitionElement) MT507.U0007U0002)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_A_95R(Tag95R tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag70C AddNarrative_A_70C()
      {
        return new Tag70C((SwiftElement) this, this.Narrative_A_70C.Length, (SwiftDefinitionElement) MT507.U0019U0002)
        {
          Value = string.Empty
        };
      }

      public void RemoveNarrative_A_70C(Tag70C tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag70D AddNarrative_A_70D()
      {
        return new Tag70D((SwiftElement) this, this.Narrative_A_70D.Length, (SwiftDefinitionElement) MT507.U001CU0002)
        {
          Value = string.Empty
        };
      }

      public void RemoveNarrative_A_70D(Tag70D tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public MT507.SequenceAClass.SequenceA2Class AddSequenceA2()
      {
        return new MT507.SequenceAClass.SequenceA2Class((SwiftElement) this, this.SequenceA2.Length, true);
      }

      public void RemoveSequenceA2(MT507.SequenceAClass.SequenceA2Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public class SequenceA1Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT507.U0011;
          }
        }

        [Description("Start Of Block")]
        public Tag16R StartOfBlock_A1_16R
        {
          get
          {
            return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0012);
          }
        }

        [Description("Start Of Block")]
        public Tag16R Tag16R_StartOfBlock_A1
        {
          get
          {
            return this.StartOfBlock_A1_16R;
          }
        }

        [Description("Agreement Indicator")]
        public Tag22F Indicator_A1_22F
        {
          get
          {
            return new Tag22F((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0014);
          }
        }

        [Description("Agreement Indicator")]
        public Tag22F Tag22F_Indicator_A1
        {
          get
          {
            return this.Indicator_A1_22F;
          }
        }

        [Description("Agreement Date")]
        public Tag98A Date_A1_98A
        {
          get
          {
            return new Tag98A((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0018);
          }
        }

        [Description("Agreement Date")]
        public Tag98A Tag98A_Date_A1
        {
          get
          {
            return this.Date_A1_98A;
          }
        }

        [Description("Agreement Version Number")]
        public Tag13B Number_A1_13B
        {
          get
          {
            return new Tag13B((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U001B);
          }
        }

        [Description("Agreement Version Number")]
        public Tag13B Tag13B_Number_A1
        {
          get
          {
            return this.Number_A1_13B;
          }
        }

        [Description("Agreement Narrative")]
        public Tag70C Narrative_A1_70C
        {
          get
          {
            return new Tag70C((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U001F);
          }
        }

        [Description("Agreement Narrative")]
        public Tag70C Tag70C_Narrative_A1
        {
          get
          {
            return this.Narrative_A1_70C;
          }
        }

        [Description("End Of Block")]
        public Tag16S EndOfBlock_A1_16S
        {
          get
          {
            return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0081);
          }
        }

        [Description("End Of Block")]
        public Tag16S Tag16S_EndOfBlock_A1
        {
          get
          {
            return this.EndOfBlock_A1_16S;
          }
        }

        internal SequenceA1Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }
      }

      public class SequenceA2Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT507.U001FU0002;
          }
        }

        [Description("Start Of Block")]
        public Tag16R StartOfBlock_A2_16R
        {
          get
          {
            return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U007FU0002);
          }
        }

        [Description("Start Of Block")]
        public Tag16R Tag16R_StartOfBlock_A2
        {
          get
          {
            return this.StartOfBlock_A2_16R;
          }
        }

        [Description("Linked Message")]
        public MT507.SequenceAClass.SequenceA2Class.Tag13A NumberIdentification_A2_13A
        {
          get
          {
            return new MT507.SequenceAClass.SequenceA2Class.Tag13A((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0082U0002);
          }
        }

        [Description("Linked Message")]
        public MT507.SequenceAClass.SequenceA2Class.Tag13A Tag13A_NumberIdentification_A2
        {
          get
          {
            return this.NumberIdentification_A2_13A;
          }
        }

        [Description("Linked Message")]
        public Tag13B NumberIdentification_A2_13B
        {
          get
          {
            return new Tag13B((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0086U0002);
          }
        }

        [Description("Linked Message")]
        public Tag13B Tag13B_NumberIdentification_A2
        {
          get
          {
            return this.NumberIdentification_A2_13B;
          }
        }

        [Description("Reference")]
        public Tag20C Reference_A2_20C
        {
          get
          {
            return new Tag20C((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U008AU0002);
          }
        }

        [Description("Reference")]
        public Tag20C Tag20C_Reference_A2
        {
          get
          {
            return this.Reference_A2_20C;
          }
        }

        [Description("End Of Block")]
        public Tag16S EndOfBlock_A2_16S
        {
          get
          {
            return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U008DU0002);
          }
        }

        [Description("End Of Block")]
        public Tag16S Tag16S_EndOfBlock_A2
        {
          get
          {
            return this.EndOfBlock_A2_16S;
          }
        }

        internal SequenceA2Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }

        public class Tag13A : SwiftTagWrapper
        {
          public string Value
          {
            get
            {
              return this.GetValue();
            }
            set
            {
              this.SetValue("13A", value);
            }
          }

          internal Tag13A(SwiftElement parent, int index, SwiftDefinitionElement definition)
            : base(parent, index, definition)
          {
          }
        }
      }
    }

    public class SequenceBClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT507.U0091U0002;
        }
      }

      [Description("Start Of Block")]
      public Tag16R StartOfBlock_B_16R
      {
        get
        {
          return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0092U0002);
        }
      }

      [Description("Start Of Block")]
      public Tag16R Tag16R_StartOfBlock_B
      {
        get
        {
          return this.StartOfBlock_B_16R;
        }
      }

      [Description("Collateral Reference")]
      public Tag20C Reference_B_20C
      {
        get
        {
          return new Tag20C((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0094U0002);
        }
      }

      [Description("Collateral Reference")]
      public Tag20C Tag20C_Reference_B
      {
        get
        {
          return this.Reference_B_20C;
        }
      }

      [Description("Collateral Type Indicator")]
      public Tag22H Indicator_B_22H
      {
        get
        {
          return new Tag22H((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0097U0002);
        }
      }

      [Description("Collateral Type Indicator")]
      public Tag22H Tag22H_Indicator_B
      {
        get
        {
          return this.Indicator_B_22H;
        }
      }

      [Description("Collateral Status")]
      public Tag25D Status_B_25D
      {
        get
        {
          return new Tag25D((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U009AU0002);
        }
      }

      [Description("Collateral Status")]
      public Tag25D Tag25D_Status_B
      {
        get
        {
          return this.Status_B_25D;
        }
      }

      [Description("Rejection Reason")]
      public Tag24B Reason_B_24B
      {
        get
        {
          return new Tag24B((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U009EU0002);
        }
      }

      [Description("Rejection Reason")]
      public Tag24B Tag24B_Reason_B
      {
        get
        {
          return this.Reason_B_24B;
        }
      }

      [Description("Reason Narrative")]
      public Tag70D Narrative_B_70D
      {
        get
        {
          return new Tag70D((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0003U0003);
        }
      }

      [Description("Reason Narrative")]
      public Tag70D Tag70D_Narrative_B
      {
        get
        {
          return this.Narrative_B_70D;
        }
      }

      [Description("General Settlement Details")]
      public MT507.SequenceBClass.SequenceB1Class SequenceB1
      {
        get
        {
          MT507.SequenceBClass.SequenceB1Class sequenceB1Class = new MT507.SequenceBClass.SequenceB1Class((SwiftElement) this, 0, false);
          if (this.ListTags((SwiftElement) sequenceB1Class).Count > 0)
            return sequenceB1Class;
          else
            return (MT507.SequenceBClass.SequenceB1Class) null;
        }
      }

      [Description("End Of Block")]
      public Tag16S EndOfBlock_B_16S
      {
        get
        {
          return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0091U0004);
        }
      }

      [Description("End Of Block")]
      public Tag16S Tag16S_EndOfBlock_B
      {
        get
        {
          return this.EndOfBlock_B_16S;
        }
      }

      internal SequenceBClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public MT507.SequenceBClass.SequenceB1Class AddSequenceB1()
      {
        return this.SequenceB1 ?? new MT507.SequenceBClass.SequenceB1Class((SwiftElement) this, 0, true);
      }

      public void RemoveSequenceB1(MT507.SequenceBClass.SequenceB1Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public class SequenceB1Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT507.U0006U0003;
          }
        }

        [Description("Start Of Block")]
        public Tag16R StartOfBlock_B1_16R
        {
          get
          {
            return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0007U0003);
          }
        }

        [Description("Start Of Block")]
        public Tag16R Tag16R_StartOfBlock_B1
        {
          get
          {
            return this.StartOfBlock_B1_16R;
          }
        }

        [Description("Settlement Details")]
        public MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass SequenceB1a
        {
          get
          {
            MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass sequenceB1aClass = new MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass((SwiftElement) this, 0, false);
            if (this.ListTags((SwiftElement) sequenceB1aClass).Count > 0)
              return sequenceB1aClass;
            else
              return (MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass) null;
          }
        }

        [Description("Cash Settlement Details")]
        public MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass SequenceB1b
        {
          get
          {
            MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass sequenceB1bClass = new MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass((SwiftElement) this, 0, false);
            if (this.ListTags((SwiftElement) sequenceB1bClass).Count > 0)
              return sequenceB1bClass;
            else
              return (MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass) null;
          }
        }

        [Description("End Of Block")]
        public Tag16S EndOfBlock_B1_16S
        {
          get
          {
            return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U008FU0004);
          }
        }

        [Description("End Of Block")]
        public Tag16S Tag16S_EndOfBlock_B1
        {
          get
          {
            return this.EndOfBlock_B1_16S;
          }
        }

        internal SequenceB1Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }

        public MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass AddSequenceB1a()
        {
          return this.SequenceB1a ?? new MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass((SwiftElement) this, 0, true);
        }

        public void RemoveSequenceB1a(MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass sequence)
        {
          foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
            this.RemoveTag(tag);
        }

        public MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass AddSequenceB1b()
        {
          return this.SequenceB1b ?? new MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass((SwiftElement) this, 0, true);
        }

        public void RemoveSequenceB1b(MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass sequence)
        {
          foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
            this.RemoveTag(tag);
        }

        public class SequenceB1aClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT507.U000EU0003;
            }
          }

          [Description("Start Of Block")]
          public Tag16R StartOfBlock_B1a_16R
          {
            get
            {
              return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U000FU0003);
            }
          }

          [Description("Start Of Block")]
          public Tag16R Tag16R_StartOfBlock_B1a
          {
            get
            {
              return this.StartOfBlock_B1a_16R;
            }
          }

          [Description("Indicator")]
          public Tag22H[] Indicator_B1a_22H
          {
            get
            {
              int index = -1;
              List<Tag22H> list = new List<Tag22H>();
              int count;
              do
              {
                ++index;
                Tag22H tag22H = new Tag22H((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U0012U0003);
                count = this.ListTags((SwiftElement) tag22H).Count;
                if (count > 0)
                  list.Add(tag22H);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Indicator")]
          public Tag22H[] Tag22H_Indicator_B1a
          {
            get
            {
              return this.Indicator_B1a_22H;
            }
          }

          [Description("Indicator")]
          public Tag22F[] Indicator_B1a_22F
          {
            get
            {
              int index = -1;
              List<Tag22F> list = new List<Tag22F>();
              int count;
              do
              {
                ++index;
                Tag22F tag22F = new Tag22F((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U0015U0003);
                count = this.ListTags((SwiftElement) tag22F).Count;
                if (count > 0)
                  list.Add(tag22F);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Indicator")]
          public Tag22F[] Tag22F_Indicator_B1a
          {
            get
            {
              return this.Indicator_B1a_22F;
            }
          }

          [Description("Settlement Parties")]
          public MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass.SequenceB1a1Class[] SequenceB1a1
          {
            get
            {
              int index = -1;
              List<MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass.SequenceB1a1Class> list = new List<MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass.SequenceB1a1Class>();
              int count;
              do
              {
                ++index;
                MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass.SequenceB1a1Class sequenceB1a1Class = new MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass.SequenceB1a1Class((SwiftElement) this, index, false);
                count = this.ListTags((SwiftElement) sequenceB1a1Class).Count;
                if (count > 0)
                  list.Add(sequenceB1a1Class);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("End Of Block")]
          public Tag16S EndOfBlock_B1a_16S
          {
            get
            {
              return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U009EU0003);
            }
          }

          [Description("End Of Block")]
          public Tag16S Tag16S_EndOfBlock_B1a
          {
            get
            {
              return this.EndOfBlock_B1a_16S;
            }
          }

          internal SequenceB1aClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }

          public Tag22H AddIndicator_B1a_22H()
          {
            return new Tag22H((SwiftElement) this, this.Indicator_B1a_22H.Length, (SwiftDefinitionElement) MT507.U0012U0003)
            {
              Value = string.Empty
            };
          }

          public void RemoveIndicator_B1a_22H(Tag22H tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag22F AddIndicator_B1a_22F()
          {
            return new Tag22F((SwiftElement) this, this.Indicator_B1a_22F.Length, (SwiftDefinitionElement) MT507.U0015U0003)
            {
              Value = string.Empty
            };
          }

          public void RemoveIndicator_B1a_22F(Tag22F tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass.SequenceB1a1Class AddSequenceB1a1()
          {
            return new MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass.SequenceB1a1Class((SwiftElement) this, this.SequenceB1a1.Length, true);
          }

          public void RemoveSequenceB1a1(MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass.SequenceB1a1Class sequence)
          {
            foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
              this.RemoveTag(tag);
          }

          public class SequenceB1a1Class : SwiftTagSequence
          {
            internal override SwiftDefinitionElement Definition
            {
              get
              {
                return (SwiftDefinitionElement) MT507.U0019U0003;
              }
            }

            [Description("Start Of Block")]
            public Tag16R StartOfBlock_B1a1_16R
            {
              get
              {
                return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U001AU0003);
              }
            }

            [Description("Start Of Block")]
            public Tag16R Tag16R_StartOfBlock_B1a1
            {
              get
              {
                return this.StartOfBlock_B1a1_16R;
              }
            }

            [Description("Party")]
            public Tag95C[] Party_B1a1_95C
            {
              get
              {
                int index = -1;
                List<Tag95C> list = new List<Tag95C>();
                int count;
                do
                {
                  ++index;
                  Tag95C tag95C = new Tag95C((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U001DU0003);
                  count = this.ListTags((SwiftElement) tag95C).Count;
                  if (count > 0)
                    list.Add(tag95C);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Party")]
            public Tag95C[] Tag95C_Party_B1a1
            {
              get
              {
                return this.Party_B1a1_95C;
              }
            }

            [Description("Party")]
            public Tag95P[] Party_B1a1_95P
            {
              get
              {
                int index = -1;
                List<Tag95P> list = new List<Tag95P>();
                int count;
                do
                {
                  ++index;
                  Tag95P tag95P = new Tag95P((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U007FU0003);
                  count = this.ListTags((SwiftElement) tag95P).Count;
                  if (count > 0)
                    list.Add(tag95P);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Party")]
            public Tag95P[] Tag95P_Party_B1a1
            {
              get
              {
                return this.Party_B1a1_95P;
              }
            }

            [Description("Party")]
            public Tag95Q[] Party_B1a1_95Q
            {
              get
              {
                int index = -1;
                List<Tag95Q> list = new List<Tag95Q>();
                int count;
                do
                {
                  ++index;
                  Tag95Q tag95Q = new Tag95Q((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U0082U0003);
                  count = this.ListTags((SwiftElement) tag95Q).Count;
                  if (count > 0)
                    list.Add(tag95Q);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Party")]
            public Tag95Q[] Tag95Q_Party_B1a1
            {
              get
              {
                return this.Party_B1a1_95Q;
              }
            }

            [Description("Party")]
            public Tag95R[] Party_B1a1_95R
            {
              get
              {
                int index = -1;
                List<Tag95R> list = new List<Tag95R>();
                int count;
                do
                {
                  ++index;
                  Tag95R tag95R = new Tag95R((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U0086U0003);
                  count = this.ListTags((SwiftElement) tag95R).Count;
                  if (count > 0)
                    list.Add(tag95R);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Party")]
            public Tag95R[] Tag95R_Party_B1a1
            {
              get
              {
                return this.Party_B1a1_95R;
              }
            }

            [Description("Party")]
            public MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass.SequenceB1a1Class.Tag95S[] Party_B1a1_95S
            {
              get
              {
                int index = -1;
                List<MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass.SequenceB1a1Class.Tag95S> list = new List<MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass.SequenceB1a1Class.Tag95S>();
                int count;
                do
                {
                  ++index;
                  MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass.SequenceB1a1Class.Tag95S tag95S = new MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass.SequenceB1a1Class.Tag95S((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U008AU0003);
                  count = this.ListTags((SwiftElement) tag95S).Count;
                  if (count > 0)
                    list.Add(tag95S);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Party")]
            public MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass.SequenceB1a1Class.Tag95S[] Tag95S_Party_B1a1
            {
              get
              {
                return this.Party_B1a1_95S;
              }
            }

            [Description("Safekeeping Account")]
            public Tag97A Account_B1a1_97A
            {
              get
              {
                return new Tag97A((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0091U0003);
              }
            }

            [Description("Safekeeping Account")]
            public Tag97A Tag97A_Account_B1a1
            {
              get
              {
                return this.Account_B1a1_97A;
              }
            }

            [Description("Safekeeping Account")]
            public Tag97B Account_B1a1_97B
            {
              get
              {
                return new Tag97B((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0094U0003);
              }
            }

            [Description("Safekeeping Account")]
            public Tag97B Tag97B_Account_B1a1
            {
              get
              {
                return this.Account_B1a1_97B;
              }
            }

            [Description("Party Contact Narrative")]
            public Tag70C Narrative_B1a1_70C
            {
              get
              {
                return new Tag70C((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0099U0003);
              }
            }

            [Description("Party Contact Narrative")]
            public Tag70C Tag70C_Narrative_B1a1
            {
              get
              {
                return this.Narrative_B1a1_70C;
              }
            }

            [Description("End Of Block")]
            public Tag16S EndOfBlock_B1a1_16S
            {
              get
              {
                return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U009CU0003);
              }
            }

            [Description("End Of Block")]
            public Tag16S Tag16S_EndOfBlock_B1a1
            {
              get
              {
                return this.EndOfBlock_B1a1_16S;
              }
            }

            internal SequenceB1a1Class(SwiftElement parent, int index, bool createTags)
              : base(parent, index, createTags)
            {
            }

            public Tag95C AddParty_B1a1_95C()
            {
              return new Tag95C((SwiftElement) this, this.Party_B1a1_95C.Length, (SwiftDefinitionElement) MT507.U001DU0003)
              {
                Value = string.Empty
              };
            }

            public void RemoveParty_B1a1_95C(Tag95C tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag95P AddParty_B1a1_95P()
            {
              return new Tag95P((SwiftElement) this, this.Party_B1a1_95P.Length, (SwiftDefinitionElement) MT507.U007FU0003)
              {
                Value = string.Empty
              };
            }

            public void RemoveParty_B1a1_95P(Tag95P tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag95Q AddParty_B1a1_95Q()
            {
              return new Tag95Q((SwiftElement) this, this.Party_B1a1_95Q.Length, (SwiftDefinitionElement) MT507.U0082U0003)
              {
                Value = string.Empty
              };
            }

            public void RemoveParty_B1a1_95Q(Tag95Q tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag95R AddParty_B1a1_95R()
            {
              return new Tag95R((SwiftElement) this, this.Party_B1a1_95R.Length, (SwiftDefinitionElement) MT507.U0086U0003)
              {
                Value = string.Empty
              };
            }

            public void RemoveParty_B1a1_95R(Tag95R tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass.SequenceB1a1Class.Tag95S AddParty_B1a1_95S()
            {
              return new MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass.SequenceB1a1Class.Tag95S((SwiftElement) this, this.Party_B1a1_95S.Length, (SwiftDefinitionElement) MT507.U008AU0003)
              {
                Value = string.Empty
              };
            }

            public void RemoveParty_B1a1_95S(MT507.SequenceBClass.SequenceB1Class.SequenceB1aClass.SequenceB1a1Class.Tag95S tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public class Tag95S : SwiftTagWrapper
            {
              public string Value
              {
                get
                {
                  return this.GetValue();
                }
                set
                {
                  this.SetValue("95S", value);
                }
              }

              internal Tag95S(SwiftElement parent, int index, SwiftDefinitionElement definition)
                : base(parent, index, definition)
              {
              }
            }
          }
        }

        public class SequenceB1bClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT507.U0001U0004;
            }
          }

          [Description("Start Of Block")]
          public Tag16R StartOfBlock_B1b_16R
          {
            get
            {
              return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0002U0004);
            }
          }

          [Description("Start Of Block")]
          public Tag16R Tag16R_StartOfBlock_B1b
          {
            get
            {
              return this.StartOfBlock_B1b_16R;
            }
          }

          [Description("Settlement Transaction Condition")]
          public Tag22F Indicator_B1b_22F
          {
            get
            {
              return new Tag22F((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0004U0004);
            }
          }

          [Description("Settlement Transaction Condition")]
          public Tag22F Tag22F_Indicator_B1b
          {
            get
            {
              return this.Indicator_B1b_22F;
            }
          }

          [Description("Cash Parties")]
          public MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass.SequenceB1b1Class[] SequenceB1b1
          {
            get
            {
              int index = -1;
              List<MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass.SequenceB1b1Class> list = new List<MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass.SequenceB1b1Class>();
              int count;
              do
              {
                ++index;
                MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass.SequenceB1b1Class sequenceB1b1Class = new MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass.SequenceB1b1Class((SwiftElement) this, index, false);
                count = this.ListTags((SwiftElement) sequenceB1b1Class).Count;
                if (count > 0)
                  list.Add(sequenceB1b1Class);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("End Of Block")]
          public Tag16S EndOfBlock_B1b_16S
          {
            get
            {
              return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U008DU0004);
            }
          }

          [Description("End Of Block")]
          public Tag16S Tag16S_EndOfBlock_B1b
          {
            get
            {
              return this.EndOfBlock_B1b_16S;
            }
          }

          internal SequenceB1bClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }

          public MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass.SequenceB1b1Class AddSequenceB1b1()
          {
            return new MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass.SequenceB1b1Class((SwiftElement) this, this.SequenceB1b1.Length, true);
          }

          public void RemoveSequenceB1b1(MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass.SequenceB1b1Class sequence)
          {
            foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
              this.RemoveTag(tag);
          }

          public class SequenceB1b1Class : SwiftTagSequence
          {
            internal override SwiftDefinitionElement Definition
            {
              get
              {
                return (SwiftDefinitionElement) MT507.U0008U0004;
              }
            }

            [Description("Start Of Block")]
            public Tag16R StartOfBlock_B1b1_16R
            {
              get
              {
                return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U000EU0004);
              }
            }

            [Description("Start Of Block")]
            public Tag16R Tag16R_StartOfBlock_B1b1
            {
              get
              {
                return this.StartOfBlock_B1b1_16R;
              }
            }

            [Description("Party")]
            public Tag95P[] Party_B1b1_95P
            {
              get
              {
                int index = -1;
                List<Tag95P> list = new List<Tag95P>();
                int count;
                do
                {
                  ++index;
                  Tag95P tag95P = new Tag95P((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U0011U0004);
                  count = this.ListTags((SwiftElement) tag95P).Count;
                  if (count > 0)
                    list.Add(tag95P);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Party")]
            public Tag95P[] Tag95P_Party_B1b1
            {
              get
              {
                return this.Party_B1b1_95P;
              }
            }

            [Description("Party")]
            public Tag95Q[] Party_B1b1_95Q
            {
              get
              {
                int index = -1;
                List<Tag95Q> list = new List<Tag95Q>();
                int count;
                do
                {
                  ++index;
                  Tag95Q tag95Q = new Tag95Q((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U0014U0004);
                  count = this.ListTags((SwiftElement) tag95Q).Count;
                  if (count > 0)
                    list.Add(tag95Q);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Party")]
            public Tag95Q[] Tag95Q_Party_B1b1
            {
              get
              {
                return this.Party_B1b1_95Q;
              }
            }

            [Description("Party")]
            public Tag95R[] Party_B1b1_95R
            {
              get
              {
                int index = -1;
                List<Tag95R> list = new List<Tag95R>();
                int count;
                do
                {
                  ++index;
                  Tag95R tag95R = new Tag95R((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U0017U0004);
                  count = this.ListTags((SwiftElement) tag95R).Count;
                  if (count > 0)
                    list.Add(tag95R);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Party")]
            public Tag95R[] Tag95R_Party_B1b1
            {
              get
              {
                return this.Party_B1b1_95R;
              }
            }

            [Description("Party")]
            public MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass.SequenceB1b1Class.Tag95S[] Party_B1b1_95S
            {
              get
              {
                int index = -1;
                List<MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass.SequenceB1b1Class.Tag95S> list = new List<MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass.SequenceB1b1Class.Tag95S>();
                int count;
                do
                {
                  ++index;
                  MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass.SequenceB1b1Class.Tag95S tag95S = new MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass.SequenceB1b1Class.Tag95S((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U001BU0004);
                  count = this.ListTags((SwiftElement) tag95S).Count;
                  if (count > 0)
                    list.Add(tag95S);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Party")]
            public MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass.SequenceB1b1Class.Tag95S[] Tag95S_Party_B1b1
            {
              get
              {
                return this.Party_B1b1_95S;
              }
            }

            [Description("Account")]
            public Tag97A[] Account_B1b1_97A
            {
              get
              {
                int index = -1;
                List<Tag97A> list = new List<Tag97A>();
                int count;
                do
                {
                  ++index;
                  Tag97A tag97A = new Tag97A((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U0081U0004);
                  count = this.ListTags((SwiftElement) tag97A).Count;
                  if (count > 0)
                    list.Add(tag97A);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Account")]
            public Tag97A[] Tag97A_Account_B1b1
            {
              get
              {
                return this.Account_B1b1_97A;
              }
            }

            [Description("Account")]
            public Tag97E[] Account_B1b1_97E
            {
              get
              {
                int index = -1;
                List<Tag97E> list = new List<Tag97E>();
                int count;
                do
                {
                  ++index;
                  Tag97E tag97E = new Tag97E((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U0084U0004);
                  count = this.ListTags((SwiftElement) tag97E).Count;
                  if (count > 0)
                    list.Add(tag97E);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Account")]
            public Tag97E[] Tag97E_Account_B1b1
            {
              get
              {
                return this.Account_B1b1_97E;
              }
            }

            [Description("Party Contact Narrative")]
            public Tag70C Narrative_B1b1_70C
            {
              get
              {
                return new Tag70C((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0088U0004);
              }
            }

            [Description("Party Contact Narrative")]
            public Tag70C Tag70C_Narrative_B1b1
            {
              get
              {
                return this.Narrative_B1b1_70C;
              }
            }

            [Description("End Of Block")]
            public Tag16S EndOfBlock_B1b1_16S
            {
              get
              {
                return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U008BU0004);
              }
            }

            [Description("End Of Block")]
            public Tag16S Tag16S_EndOfBlock_B1b1
            {
              get
              {
                return this.EndOfBlock_B1b1_16S;
              }
            }

            internal SequenceB1b1Class(SwiftElement parent, int index, bool createTags)
              : base(parent, index, createTags)
            {
            }

            public Tag95P AddParty_B1b1_95P()
            {
              return new Tag95P((SwiftElement) this, this.Party_B1b1_95P.Length, (SwiftDefinitionElement) MT507.U0011U0004)
              {
                Value = string.Empty
              };
            }

            public void RemoveParty_B1b1_95P(Tag95P tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag95Q AddParty_B1b1_95Q()
            {
              return new Tag95Q((SwiftElement) this, this.Party_B1b1_95Q.Length, (SwiftDefinitionElement) MT507.U0014U0004)
              {
                Value = string.Empty
              };
            }

            public void RemoveParty_B1b1_95Q(Tag95Q tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag95R AddParty_B1b1_95R()
            {
              return new Tag95R((SwiftElement) this, this.Party_B1b1_95R.Length, (SwiftDefinitionElement) MT507.U0017U0004)
              {
                Value = string.Empty
              };
            }

            public void RemoveParty_B1b1_95R(Tag95R tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass.SequenceB1b1Class.Tag95S AddParty_B1b1_95S()
            {
              return new MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass.SequenceB1b1Class.Tag95S((SwiftElement) this, this.Party_B1b1_95S.Length, (SwiftDefinitionElement) MT507.U001BU0004)
              {
                Value = string.Empty
              };
            }

            public void RemoveParty_B1b1_95S(MT507.SequenceBClass.SequenceB1Class.SequenceB1bClass.SequenceB1b1Class.Tag95S tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag97A AddAccount_B1b1_97A()
            {
              return new Tag97A((SwiftElement) this, this.Account_B1b1_97A.Length, (SwiftDefinitionElement) MT507.U0081U0004)
              {
                Value = string.Empty
              };
            }

            public void RemoveAccount_B1b1_97A(Tag97A tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag97E AddAccount_B1b1_97E()
            {
              return new Tag97E((SwiftElement) this, this.Account_B1b1_97E.Length, (SwiftDefinitionElement) MT507.U0084U0004)
              {
                Value = string.Empty
              };
            }

            public void RemoveAccount_B1b1_97E(Tag97E tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public class Tag95S : SwiftTagWrapper
            {
              public string Value
              {
                get
                {
                  return this.GetValue();
                }
                set
                {
                  this.SetValue("95S", value);
                }
              }

              internal Tag95S(SwiftElement parent, int index, SwiftDefinitionElement definition)
                : base(parent, index, definition)
              {
              }
            }
          }
        }
      }
    }

    public class SequenceCClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT507.U0093U0004;
        }
      }

      [Description("Start of Block")]
      public Tag16R StartOfBlock_C_16R
      {
        get
        {
          return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0094U0004);
        }
      }

      [Description("Start of Block")]
      public Tag16R Tag16R_StartOfBlock_C
      {
        get
        {
          return this.StartOfBlock_C_16R;
        }
      }

      [Description("Party")]
      public Tag95P[] Party_C_95P
      {
        get
        {
          int index = -1;
          List<Tag95P> list = new List<Tag95P>();
          int count;
          do
          {
            ++index;
            Tag95P tag95P = new Tag95P((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U0097U0004);
            count = this.ListTags((SwiftElement) tag95P).Count;
            if (count > 0)
              list.Add(tag95P);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95P[] Tag95P_Party_C
      {
        get
        {
          return this.Party_C_95P;
        }
      }

      [Description("Party")]
      public Tag95R[] Party_C_95R
      {
        get
        {
          int index = -1;
          List<Tag95R> list = new List<Tag95R>();
          int count;
          do
          {
            ++index;
            Tag95R tag95R = new Tag95R((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U009AU0004);
            count = this.ListTags((SwiftElement) tag95R).Count;
            if (count > 0)
              list.Add(tag95R);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95R[] Tag95R_Party_C
      {
        get
        {
          return this.Party_C_95R;
        }
      }

      [Description("Party")]
      public Tag95Q[] Party_C_95Q
      {
        get
        {
          int index = -1;
          List<Tag95Q> list = new List<Tag95Q>();
          int count;
          do
          {
            ++index;
            Tag95Q tag95Q = new Tag95Q((SwiftElement) this, index, (SwiftDefinitionElement) MT507.U009EU0004);
            count = this.ListTags((SwiftElement) tag95Q).Count;
            if (count > 0)
              list.Add(tag95Q);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95Q[] Tag95Q_Party_C
      {
        get
        {
          return this.Party_C_95Q;
        }
      }

      [Description("End of Block")]
      public Tag16S EndOfBlock_C_16S
      {
        get
        {
          return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT507.U0002U0005);
        }
      }

      [Description("End of Block")]
      public Tag16S Tag16S_EndOfBlock_C
      {
        get
        {
          return this.EndOfBlock_C_16S;
        }
      }

      internal SequenceCClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public Tag95P AddParty_C_95P()
      {
        return new Tag95P((SwiftElement) this, this.Party_C_95P.Length, (SwiftDefinitionElement) MT507.U0097U0004)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_C_95P(Tag95P tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag95R AddParty_C_95R()
      {
        return new Tag95R((SwiftElement) this, this.Party_C_95R.Length, (SwiftDefinitionElement) MT507.U009AU0004)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_C_95R(Tag95R tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag95Q AddParty_C_95Q()
      {
        return new Tag95Q((SwiftElement) this, this.Party_C_95Q.Length, (SwiftDefinitionElement) MT507.U009EU0004)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_C_95Q(Tag95Q tag)
      {
        this.RemoveTag(tag.GetTag());
      }
    }
  }
}
